![](/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.