Как скопировать данные с листа 1 рабочей книги1 на лист 2 рабочей книги 2? - PullRequest
0 голосов
/ 17 марта 2020

Мне нужно скопировать данные из Sheet1 из Workbook1 в Sheet2 из Workbook2. Мне нужно скопировать данные листа 1 из A1 в AE (LastRow) и вставить все скопированные данные в Q1 из Sheet2 из Workbook2.

Вот мой код:

Set wbkA = Workbooks.Open(Filename:="D:\Excel\Workbook1.xlsx")

     For Each oSheet In wbkA.Sheets

        If oSheet.Name = "Sheet1" Then
           Set NewWorksheetA = wbkA.Worksheets(oSheet.Name)
        End If

    Next oSheet
Set wbkB = Workbooks.Open(Filename:="D:\Excel\Workbook2.xlsx")

     For Each oSheet In wbkB.Sheets

        If oSheet.Name = "Sheet2" Then
           Set NewWorksheetB = wbkB.Worksheets(oSheet.Name)
        End If

    Next oSheet
''''''''''''''''''''''''''''''''''''''''''''''''''''''' for Loop for row and Column Starts here to compare the data
If Not NewWorksheetA Is Nothing Then

''''''''''''''''''''''''''''''''''''''''''''''''''''''' Getting Last Column index from current Worbook to Write the UpdateStatus
LastRow = NewWorksheetA.Cells(NewWorksheetA.Rows.Count, 2).End(xlUp).Row
'MsgBox "Last Row Number:" & LastRow
LastColumn = NewWorksheetA.Cells(8, NewWorksheetA.Columns.Count).End(xlToLeft).Column
'MsgBox "Last Column Number:" & LastColumn

Workbooks("D:\Excel\Workbook1.xlsx").Worksheets("Sheet1").Range("A1:AE" & LastRow).Copy _
Workbooks("D:\Excel\Workbook2.xlsx").Worksheets("Sheet2").Range("Q1")

End If

Я получаю сообщение об ошибке ниже

Run Time Error 9:

Subscript out of range.

Я хотел бы использовать переменную, используемую для Workbook и имени листа

1 Ответ

0 голосов
/ 19 марта 2020

Замените этот код:

Workbooks("D:\Excel\Workbook1.xlsx").Worksheets("Sheet1").Range("A1:AE" & LastRow).Copy _
Workbooks("D:\Excel\Workbook2.xlsx").Worksheets("Sheet2").Range("Q1")

на этот:

NewWorksheetA.Range("A1:AE" & LastRow).Copy
NewWorksheetB.Range("Q1").PasteSpecial xlPasteAll
Application.CutCopyMode = False

Надеюсь, мой ответ поможет. :)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...