Я создаю довольно большой макрос, который содержит в настоящее время 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()
», и она работает счастливо.
Почему?
ТИА
(Названия книг и таблиц были изменены, чтобы защитить невинных)
Спасибо Маргу за то, что нашли время ответить - я только что узнал, что я идиот. Должен был активировать рабочую книгу, прежде чем я попытаюсь ссылаться на рабочий лист. Думаю, кофе больше. Извините за то, что тратишь свое время! – JustAPleb
Ох, и хорошая идея о коллекции - я буду использовать это. Ta: -D – JustAPleb