Excel VBA 复制并粘贴到最后一行

Excel VBA Copy and Paste to last row

这里是 Excel VBA 的初学者。我希望能够将一大块信息从一行中的一个单元格复制并粘贴到另一行中的单元格。例如,从行 "A" 到行 "F" 的一大块信息。但是我希望能够多次执行此操作,即使我已经 运行 宏一次并且我希望将信息粘贴到行 "F" 最后使用的单元格下方,因此列表可以是继续。当我多次 运行 宏时,我想在每列之间不带行地粘贴信息,但我希望它从特定列开始。但是我好像做不到。

这是我的代码:

Sub pastebelowlastcell()
Dim lRow As Long
Dim LastRow As Long
lRow = Sheets("Sheet1").Cells(Rows.Count,"A").End(xlUp).Row
lRow = lRow + 1
LastRow = Sheets("Sheet1").Cells(Rows.Count,"F").End(xlUp).Row
LastRow = LastRow + 1
ActiveSheet.Range("A1:C" & lRow).Copy
ActiveSheet.Range("F" & LastRow).PasteSpecial
Application.CutCopyMode = False
End sub

例如,我想粘贴从 "F10" 开始的代码,但如果我将代码更改为:

LastRow = Sheets("Sheet1").Cells(Rows.Count,"F").End(xlUp).Row
LastRow = LastRow + 9

它会从"F10"开始粘贴,但每次粘贴时都会在中间插入8个空行,当我多次运行代码时。

此外,是否可以使用此方法将单个单元格中的信息粘贴到合并单元格中?

假设您从 A 列的第 1 行开始复制,试试这个:

Sub pastebelowlastcell()

Dim FirstRow, ALastRow, FLastRow As Long

t = 1
ALastRow = ActiveSheet.Cells(Rows.Count, 1).End(xlUp).Row

    Do Until t = ALastRow

        ActiveSheet.Range("A" & t & ":C" & t).Copy

        FLastRow = ActiveSheet.Cells(Rows.Count, 6).End(xlUp).Row
        If t = 1 Then FLastRow = 10

        ActiveSheet.Range("F" & FLastRow).PasteSpecial Paste:=xlPasteValues

        t = t + 1

    Loop

Application.CutCopyMode = False

End Sub

尝试将 LastRow 行更改为

LastRow = WorksheetFunction.Max(Sheets("Sheet1").Cells(Rows.Count, "F").End(xlUp).Row, 9)

当您启动时,它将被分配值 9(在您添加 1 之前),此后它将找到最后使用的行。