ThisWorkbook
может быть не тем, что вы думаете.
Существует Application.ThisWorkbook
, который является свойством объекта Application
.Он возвращает книгу, в которой находится код, который вызывает это свойство.
Существует также "просто" ThisWorkbook
, имя кода , представляющее экземпляр класса Workbook, в котором находится ваш код,Проблема в том, что этот ThisWorkbook
, в отличие от Application.ThisWorkbook
, подлежит локализации.Это не часть объектной модели, это произвольное имя.
Для английской версии Excel локализованное имя тоже бывает ThisWorkbook
.
Для неанглийских Excels этобудет нечто иное.
Таким образом, из-за приоритета области действия ThisWorkbook
разрешается в "кодовое имя" в английском Excel и в Application.ThisWorkbook
в неанглийском Excels.
Это один и тот же объект, но свойства Friend доступны только «поистине внутренне», поэтому при доступе к книге по маршруту Application.ThisWorkbook
вы не можете их видеть.
Исправление заключается в переименовании локализованного ThisWorkbook
Возврат к ThisWorkbook
в дереве проекта.Подобно именам кодов листов, это изменение является локальным для файла.
Использование локализованного имени вместо ThisWorkbook
в вашем коде также будет работать.