首页 > 解决方案 > 如何将数据范围复制到另一个工作表的最后一行?

问题描述

我正在尝试将另一工作表中的一行复制到我的数据跟踪表的最后一行。

我得到应用程序定义或对象定义错误。

Sub Macro1()

    Dim i As Integer
    Dim A As Integer
    
    Range("A20:AB20").Select
    Selection.Copy
    Application.WindowState = xlNormal
    Windows("master tracking sheet.xlsm").Activate
    i = Worksheets("Recieved Results").cells(Rows.Count, 1).End(xlUp).Row
    A = i + 1

    Selection.End(A).Select
    Range(A).Select
    ActiveSheet.Paste
    
End Sub

标签: excelvba

解决方案


你不需要使用像Selector之类的东西Activate。由于您可以在 VBA 中将事物声明为对象,因此您可以使用它来执行大多数操作,而无需使用其中任何一个。试试下面的代码:

Sub CopyFromOneSheetToAnother()

    Dim oCopyFromWS As Worksheet: Set oCopyFromWS = ThisWorkbook.Worksheets("Sheet3")           '<- Change the sheet name to the sheet you want to copy from
    Dim oCopyToWS As Worksheet: Set oCopyToWS = ThisWorkbook.Worksheets("Sheet4")               '<- Change the sheet name to the sheet you want to copy to
    Dim iLR As Long: iLR = oCopyToWS.Cells(oCopyToWS.Rows.Count, 1).End(xlUp).Row + 1
    
    oCopyFromWS.Range("A20:AB20").Copy oCopyToWS.Range("A" & iLR)
    
End Sub

推荐阅读