Прежде всего, простое решение, как уже упоминалось другими:
ThisWorkbook.Sheets("January").Something
(строка чувствительна к регистру!)
Существует несколько способов ссылки на лист, и есть разные типы имендля рабочих листов.Вы должны различать «CodeName» и «Имя».Вы легко найдете больше информации о разнице между этими двумя.
Основные различия заключаются в том, что Name
может быть изменен пользователем, это имя отображается на вкладке в нижней части Excel.Интерфейс.
CodeName
можно изменить только через интерфейс VBA.
CodeName
и Name
обычно идентичны при создании рабочего листа (Лист1 и т. Д.).
Чтобы ссылаться на лист по имени, вы можете использовать этот код: ThisWorkbook.Sheets("SomeName").SomeFunction()
CodeName
можно использовать прямо так: Sheet2.SomeFunction()
, но я бы рекомендовал сначала изменить CodeName на что-то значимое / выразительное!
(Name)
- это кодовое имя, Name
- это видимое имя

Более подробную информацию об операторе Bang !
можно найти здесь.: https://rubberduckvba.wordpress.com/2018/03/15/vba-trap-default-members/
Обширный ответ по ссылочным листам:
https://stackoverflow.com/a/41481428/10223558