Доступ к двум различным книгам из личного макроса - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть личный макрос, который обращается к двум различным книгам.

Вот обновленный код:

Sub Copy_and_Paste()
    Dim ws1 As Worksheet Set ws1 = Workbooks("Submittals").Worksheets("Sheet1") 
    Dim ws2 As Worksheet Set ws2 = Workbooks("Previous").Worksheets("Sheet1") 
    Dim num_rows_A As Integer
    Dim num_rows_B As Integer

    num_rows = ws1.Range("A1", Range("A1").End(xlDown)).Count

    MsgBox ("Num rows in A = " & num_rows)

    num_rows_B = ws2.Range("A1", Range("A1").End(xlDown)).Count

    MsgBox ("Num rows in B = " & num_rows_B)
End Sub

Когда я запускаю код, если A активен, то MsgBox дляА работает, но для BI это ошибка:

Ошибка времени выполнения '1004' Ошибка приложения или объекта.

  • ЕслиB активен, я получаю ошибку.

  • Если я закомментирую все три строки, относящиеся к A, MsgBox для B. будет работать нормально.

Любая идея, что я могу сделать, чтобы получить доступобе рабочие книги?

Я не понимаю, что означает определение диапазона для рабочей таблицы.Любые предложения, где я могу пойти, чтобы прочитать об этом?

Спасибо.

1 Ответ

0 голосов
/ 12 декабря 2018

В вашем обновленном коде еще осталось 2 неквалифицированных Range с - я полностью их квалифицировал для вас ниже:

Sub Copy_and_Paste()

    Dim ws1 As Worksheet: Set ws1 = Workbooks("Submittals").Worksheets("Sheet1")
    Dim ws2 As Worksheet: Set ws2 = Workbooks("Previous").Worksheets("Sheet1")
    Dim num_rows_A As Integer
    Dim num_rows_B As Integer

    num_rows = ws1.Range("A1", ws1.Range("A1").End(xlDown)).Count

    MsgBox ("Num rows in A = " & num_rows)

    num_rows_B = ws2.Range("A1", ws2.Range("A1").End(xlDown)).Count

    MsgBox ("Num rows in B = " & num_rows_B)

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