Как использовать переменную vba thisworkbook в excel?
В VBA вы можете использовать свойство ThisWorkbook для ссылки на книгу, в которой вы пишете код. Когда вы его используете, у вас есть доступ ко всем свойствам и методам текущей книги. Проще говоря, вы можете запускать все задачи в текущей книге, не используя имя.
Предположим, вы хотите подсчитать листы в текущей книге. Код, который вам нужно написать, будет следующим.
Sub vba_thisworkbook() MsgBox ThisWorkbook.Sheets.Count End Sub

Когда вы запускаете этот код, появляется окно сообщения с количеством листов в текущей книге.

Как я уже сказал, когда вы используете ThisWorkbook, он дает вам доступ к свойствам и методам текущей книги. Вы можете увидеть все это, введя точку (.), чтобы просмотреть полный список.

Полезные ссылки: Запуск макроса – Средство записи макросов – Редактор Visual Basic – Персональный справочник по макросам
Использование ThisWorkbook с переменной
Далее я покажу вам реальный пример кода для объявления переменной для использования свойства ThisWorkbook. Предположим, вы хотите выполнить несколько действий в текущей книге.
Sub vba_thisworkbook() Dim myWB As Workbook Set myWB = ThisWorkbook With myWB .Activate .Sheets(1).Activate .Range("A1") = Now .Save .Close End With End Sub
В первой части этого кода у вас есть переменная, затем присвойте ей свойство ThisWorkbook. А во второй части у вас есть оператор With STATEMENT для выполнения нескольких действий с текущей переменной.
ActiveWorkBook против этой книги
Позвольте мне объяснить это вам с помощью простой аналогии, так что подождите следующие 2 минуты.
У вас одновременно открыты две книги (Книга1 и Книга2). Вы пишете код в книге book1 , но в этот момент активна книга2. Поэтому, когда вы запускаете этот код, ссылающийся на ActiveWorkbook, он выполнит это действие в Book2 .
Но когда вы используете ThisWorkbook, VBA всегда ссылается на книгу, в которой написан код.
Вот в чем дело: всегда лучше использовать ThisWorkbook, поскольку это исключает вероятность ошибки.