簡體   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