繁体   English   中英

将固定范围的单元格向下复制到空白列,直到另一列中的最后一行数据

[英]Copying a fixed range of cells down a blank column until the last row of data in another column

我有一个包含 4 列 (A:D) 的工作表 (Sheet1)。 A列有1000多行数据,D列是空白的。 在 Sheet2 上,我有一个名为 Indicators (B2:B11) 的范围,我需要将其复制到 Sheet1 上的 D 列中,并在 D 列的下一个空单元格中重复该过程,一直到 A 列中的最后一行数据。这是我用来将范围复制到 D 列的代码,但是我很难一直重复这个过程,因为我不确定如何在这种情况下使用 LastRow。

Sub FillDownIndicators()
    Dim LastRow As Long
    LastRow = Sheet7.Cells(Rows.Count, 1).End(xlUp).Row

    Sheet3.Range("Indicators").Copy
    Sheet7.Range("D2").PasteSpecial Paste:=xlPasteValues
End Sub

简而言之,一旦将范围复制到 D 列(10 行)中,就必须在 D 列的下一个空行中再次复制,直到到达 A 列中的最后一行。有人可以帮忙吗?

只需使用您的变量LastRow来构建该范围

Sheet7.Range("D2:D" & LastRow).PasteSpecial Paste:=xlPasteValues

尝试将 n 个单元格的内容特别粘贴到 m 个单元格中不会填满整个想要的范围

所以我想出了以下内容

Option Explicit

Sub FillDownIndicators()
    Dim LastRow As Long

    With Sheet7
        LastRow = .Cells(.Rows.Count, 1).End(xlUp).Row
        With .Range("D2:D" & LastRow)
            .ClearContents
            .Resize(Sheet3.Range("Indicators").Rows.Count).Value = Sheet3.Range("Indicators").Value
            With .SpecialCells(xlCellTypeBlanks)
                .FormulaR1C1 = "=R[-" & Sheet3.Range("Indicators").Rows.Count & "]C"
                .Value = .Value
            End With
        End With
    End With
End Sub

一个更紧凑的版本是:

Sub FillDownIndicators()
    With Sheet7.Range("D2:D" & Sheet7.Cells(Rows.Count, 1).End(xlUp).Row)
        .ClearContents
        .Resize(Sheet3.Range("Indicators").Rows.Count).Value = Sheet3.Range("Indicators").Value
        With .SpecialCells(xlCellTypeBlanks)
            .FormulaR1C1 = "=R[-" & Sheet3.Range("Indicators").Rows.Count & "]C"
            .Value = .Value
        End With
    End With
End Sub

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM