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

时间:2018-07-04 09:28:49

标签: excel vba excel-vba excel-2016

此处是使用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行空白行。

还可以使用这种方法将信息从单个单元格粘贴到合并的单元格中吗?

2 个答案:

答案 0 :(得分:1)

尝试将LastRow行更改为

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

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

答案 1 :(得分:0)

假设您从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