Vba 复制并粘贴用户定义的范围

Vba 复制并粘贴用户定义的范围,vba,excel,Vba,Excel,有人能帮我复制和粘贴一个用户定义的范围吗。我有以下内容,但由于某些原因,在尝试执行操作时出错。我想我少了一点零钱。谢谢 Sheets("Sheets1").Select Dim lngLastRow2 As Long lngLastRow2 = Cells(Rows.Count, "A").End(xlUp).Row Worksheets("Sheets2").Range("A3:A" & lngLastRow).Copy _ Destination:=ActiveSheet.Ran

有人能帮我复制和粘贴一个用户定义的范围吗。我有以下内容,但由于某些原因,在尝试执行操作时出错。我想我少了一点零钱。谢谢

Sheets("Sheets1").Select
Dim lngLastRow2 As Long

lngLastRow2 = Cells(Rows.Count, "A").End(xlUp).Row

Worksheets("Sheets2").Range("A3:A" & lngLastRow).Copy _
Destination:=ActiveSheet.Range(lngLastRow2)

您在此处确实有一个错误:

Destination:=ActiveSheet.Range(lngLastRow2)
其计算结果为
.Range(x)
,其中x是一些
Range
需要的是类似于
.Range(“A20”)
的东西

一个解决方案是将其更改为

Destination:=ActiveSheet.Range("A" & lngLastRow2)
或者另一种解决方案是使用
范围
变量:

Dim lastRow As Range
Set lastRow = ThisWorkbook.Worksheets("Sheet1").Cells(Rows.Count, "A").End(xlUp)
With ThisWorkbook.Worksheets("Sheet2")
    .Range("A3:A" & lastRow.Row).Copy Destination:=.Range(lastRow.Address)
End With

您的目标区域需要一个列引用,当前您只有一行。根据我从您那里得到的信息,它只复制了一列数据。我要做的是确定工作表1上的最后一行数据(存储该数据),确定工作表2上的最后一行,然后从开始到工作表2上的最后一行复制所有数据到工作表1中,从第一个空白行开始。很明显,我需要的是所有在第2页上有数据的列,而不仅仅是第一列。我曾考虑过确定最后一行数据,然后确定最后一列数据,如下所述,但似乎我正在使其变得更加复杂。