Я пытаюсь получить дескриптор к рабочему листу, который был создан операцией копирования. следующий код, используемый для работы:
Dim wsTempl As Worksheet, pageCount as Long
Set wsTempl = Sheets("Template")
For pageCount = 1 To 5
wsTempl.Copy After:=Sheets(Sheets.Count)
Set ws = Sheets(Sheets.Count)
ws.Name = "p" & pageCount
Next
Но остановился при добавлении листов VeryHidden в рабочую книгу. теперь мои Sheets (Sheets.Count) получают лист VeryHidden вместо листа, который я добавил последним.
Конечно, я мог бы использовать
Set ws = Sheets(wsTempl.Name & " (2)")
ws.Name = "p" & pageCount
Но это кажется таким уродливым, разве это единственный путь? Может кто-нибудь придумать другой путь?
, чтобы повторить проблему:
- Откройте новую книгу, назовите первый лист «Шаблон» и удалите остальные листы
- alt-f11 - вставьте модуль кода и вставьте указанный выше код
- F5 должен показать вам, что он работает.
- вставить лист, используя вкладки листа, перетащить его в конец коллекции
- установить значение VeryHidden в VBA IDE
- F5 снова, первый листинг кода должен завершиться ошибкой
Причина в том, что Copy After: = не копируется после VeryHidden Sheets, поэтому часть кода для переименования листа всегда переименовывает VeryHidden Sheet