![](/img/trans.png)
[英]Copying data to Blank Cells in column B until the last used range in column A
[英]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.