Я создаю довольно большой макрос, который в настоящее время берет 5 рабочих книг (которые, вероятно, со временем увеличатся) с несколькими рабочими листами и объединяет их в одну рабочую книгу.
Теперь я бы подумал, чтоСамый простой способ сделать все различные задачи, которые я должен сделать, это объявить глобальную ссылку на книгу.Но, похоже, это не работает.
Итак, я объявил это как:
Public E1_workbook As Workbook
И затем, когда макрос запускается, он его создает.
Private Sub Begin()
...
Set E1_workbook = Workbooks.Open(Filename:="Workbook name")
...
'Do other stuff
...
Whatever
...
'Close workbooks and free up resources...
...
End Sub
А затем, в другой подпрограмме, я пытаюсь использовать рабочую книгу:
private sub Whatever()
E1_workbook.Worksheets("worksheet name").Select
Однако это не удастся, заявив, что «Метод выбора класса рабочего листа не выполнен»
Несмотря на то, что я могу скопировать точную строку из подпункта 'Whatever()
' выше в подпункт 'Begin()
', и она работает успешно.
Почему?
TIA
(Названия рабочих и рабочих тетрадей были изменены, чтобы защитить невинных)