Excel VBA复制并向下粘贴两行

Excel VBA复制并向下粘贴两行,excel,vba,copy,paste,Excel,Vba,Copy,Paste,我刚刚遇到VBA,所以我完全是个新手。基本上,我目前正在自动化一个表单,需要在电子表格上为开发人员写出问题、潜在答案、说明等。我已经创建了一个基本模板表,所以所有问题的结构都相同。我想复制并粘贴这个表(清除内容并去掉问题的编号),然后从最后一个表的底部向下粘贴两行 如果我只想将表直接复制粘贴到第一个表的下面,那么代码就可以了,但我不能再继续了。我不知道如何写,我希望它找到最后填写的一行,并粘贴下表2行 Sub Macro2() ' ' Macro2 Macro ' ' Keyboard Shor

我刚刚遇到VBA,所以我完全是个新手。基本上,我目前正在自动化一个表单,需要在电子表格上为开发人员写出问题、潜在答案、说明等。我已经创建了一个基本模板表,所以所有问题的结构都相同。我想复制并粘贴这个表(清除内容并去掉问题的编号),然后从最后一个表的底部向下粘贴两行

如果我只想将表直接复制粘贴到第一个表的下面,那么代码就可以了,但我不能再继续了。我不知道如何写,我希望它找到最后填写的一行,并粘贴下表2行

Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+g
'
    Range("C2:G6").Select
    Selection.ClearContents

    Range("A2").Select
    ActiveCell.FormulaR1C1 = "C"

    Range("A2:G6").Select
    Selection.Copy

    Range("A8").Select
    ActiveSheet.Paste
End Sub

您可以完全避免使用
select
来实现您的目标。在下面的代码中,
Source
是表的范围,
LastRow
查找表的最后一行,
DestRng
是需要表副本的目标。希望这有帮助

Sub Macro2()
'
' Macro2 Macro
'
' Keyboard Shortcut: Ctrl+g
'
    Dim TblRng As Range
    Set TblRng = Range("C2:G6")
    TblRng.ClearContents

    Dim Source As Range
    Set Source = Worksheets("Sheet2").Range(("A2"), Range("G2").End(xlDown))
    Source.Copy

    Dim LastRow As Long
    LastRow = Cells(Rows.Count, "G").End(xlUp).Row

    Dim DestRng As Range
    Set DestRng = Source(LastRow + 1, "A")
    DestRng.PasteSpecial xlPasteAll

End Sub

你可能会从阅读中受益。