Excel 在列的最后一个单元格处剪切复制选定范围

Excel 在列的最后一个单元格处剪切复制选定范围,excel,vba,copy-paste,Excel,Vba,Copy Paste,我已经编写了一个代码,其中我尝试将多个数据区域从一个工作表复制并粘贴到另一个工作表,但我希望将数据复制到前一组数据下面。我用于复制条目的代码如下: Selection.Copy Windows(Workbook1).Activate Sheets(Sheet1).Select Cells(Rows.Count, 1).End(x1Up).Select ActiveCell.PasteSpecial xlPasteValues 我在第四排看到了错误 (应用程序定义或对象定义错误) 您的代

我已经编写了一个代码,其中我尝试将多个数据区域从一个工作表复制并粘贴到另一个工作表,但我希望将数据复制到前一组数据下面。我用于复制条目的代码如下:

Selection.Copy

Windows(Workbook1).Activate

Sheets(Sheet1).Select

Cells(Rows.Count, 1).End(x1Up).Select

ActiveCell.PasteSpecial xlPasteValues
我在第四排看到了错误

(应用程序定义或对象定义错误)


您的代码可以使用以下示例进行压缩:

适用于您的工作:

Dim lRow As Long
Dim wb As Workbook: Set wb = ThisWorkbook
Dim Sourcews As Worksheet: Set Sourcews = wb.Worksheets("Sheet21")
Dim Destinationws As Worksheet: Set Destinationws = wb.Worksheets("Sheet1")

lRow = Destinationws.Cells(Destinationws.Rows.Count, "A").End(xlUp).Row + 1
Sourcews.Range("A1:D4").Copy Destination:=Destinationws.Range("A" & lRow)
避免使用激活和选择。这是缓慢的,可能是不可靠的


请试试这个密码。它将复制A:A列最后一个空行中的选定范围值。我从您尝试计算的方式推断出这一点。但是,你这样做是不正确的。您将在“A1:A”和最后一个单元格范围内复制您的范围。这就是你真正想要的吗

Sub testCopyValues()
 Dim sh As Worksheet, lastRow As Long, rng As Range

 Set rng = Selection
 Set sh = Workbooks("Workbook1").Sheets(1)

 lastRow = sh.Cells(Rows.count, 1).End(xlUp).row

 sh.Range("A" & lastRow + 1).Resize(rng.Rows.count, rng.Columns.count).Value = rng.Value
End Sub
如果您需要粘贴在同一工作簿的另一页上,请替换


Set sh=Workbooks(“Workbook1”).Sheets(1)
Set sh=ActiveWorkbook.Sheets(1)

无需选择、复制和粘贴。。。是否确实要复制选择的范围?如果是,您希望粘贴到第二个工作簿的哪一列?您的选择是否只包含一列?
Sub testCopyValues()
 Dim sh As Worksheet, lastRow As Long, rng As Range

 Set rng = Selection
 Set sh = Workbooks("Workbook1").Sheets(1)

 lastRow = sh.Cells(Rows.count, 1).End(xlUp).row

 sh.Range("A" & lastRow + 1).Resize(rng.Rows.count, rng.Columns.count).Value = rng.Value
End Sub