VBA将Excel中的一系列单元格复制到新工作表时,第二次出现错误

VBA将Excel中的一系列单元格复制到新工作表时,第二次出现错误,excel,copy-paste,vba,Excel,Copy Paste,Vba,嗨,我正在写一个方法,将多个表复制到一张表中 将工作表名称传递给该方法 startrow计算第一个空行的位置 它第一次运行并复制第一张图纸,但不复制后续图纸 我得到一个错误,说我只能复制到工作表的第一个单元格 Sub WardHandler(SheetName As String) Dim TargetSheet As Worksheet Set TargetSheet = Sheets("TEST") Dim SourceSheet As Worksheet Set SourceSheet

嗨,我正在写一个方法,将多个表复制到一张表中

将工作表名称传递给该方法

startrow计算第一个空行的位置

它第一次运行并复制第一张图纸,但不复制后续图纸

我得到一个错误,说我只能复制到工作表的第一个单元格

Sub WardHandler(SheetName As String)

Dim TargetSheet As Worksheet
Set TargetSheet = Sheets("TEST")

Dim SourceSheet As Worksheet
Set SourceSheet = Sheets(SheetName)

Dim StartRow As Long
StartRow = 1

If TargetSheet.Range("A" & Rows.Count).End(xlUp).Row > 1 Then
StartRow = TargetSheet.Range("A" & Rows.Count).End(xlUp).Row + 1
End If


 With SourceSheet
        .Range("A1", Selection.End(xlDown).End(xlToRight)).Copy TargetSheet.Cells(StartRow, 1)
    End With

End Sub

为什么要费尽心机正确定义工作表,而只使用
Selection.End(xlDown)
中的属性?“第二次使用”源工作表是不同的工作表,所选内容不再有效。我是否做错了什么?这只是我以前使用的一种方法,当行数未知时,我第二次使用相同的源工作表进行测试。您不能使用其他工作表中的单元格定义范围。第一次,SourceSheet是保存所选内容的工作表。第二次不是。我很困惑?我可能没有很好地描述这个问题。如果目标工作表中已有数据,即startrow大于1,则该方法甚至不会第一次复制。第一次通过时的选择在哪里?