Копировать между рабочими и рабочими листами - PullRequest
0 голосов
/ 08 мая 2019

Я пытаюсь скопировать динамический диапазон из одной рабочей книги1 листа1 в рабочую книгу2 листа2.Код работает, но только когда у меня активна рабочая тетрадь1 лист1, если активна рабочая тетрадь1 лист2, код не выполняется.

Мой код:

Sub CopyOrders()


    Dim wB1 As Worksheet
    Set wB1 = Workbooks("Master.xlsx").Worksheets("Data")

    Dim RngCe1 As Range
    Set RngCe1 = wB1.Cells(Rows.Count, "B").End(xlUp).Offset(0, 11)

    Dim RngCe2 As Range
    Set RngCe2 = wB1.Range("A1:A7000").FIND("Grand Total", LookAt:=xlPart).Offset(-1, 23)

    Dim NewRng As Range
    Set NewRng = Range(RngCe1.Address & ":" & RngCe2.Address)

    Dim wB2 As Worksheet
    Set wB2 = Workbooks("Report.xlsx").Worksheets("Orders")

    Dim DesRng As Range
    Set DesRng = wB2.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(, 12)

    NewRng.Copy
    DesRng.PasteSpecial xlPasteValues


End Sub

1 Ответ

0 голосов
/ 08 мая 2019

Проблема заключается в следующем:

Set DesRng = wB2.Cells(Rows.Count, "A").End(xlUp).Offset(1, 0).Resize(, 12)

Вместо Rows.Count вам необходимо указать здесь лист, в противном случае используется активный лист.Так что wB2.Rows.Count сделает свое дело.

И все же: вы определяете работу лист переменных и называете их w B 2.Для ясности переименуйте их в w S 2.

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