Разница между Thisworkbook.name и Activeworkbook.name в VBA

#excel #vba #loops

#vba #превосходить

Вопрос:

Есть ли какая-либо разница между этой рабочей книгой и активной рабочей книгой.

Пример кода :

 Sub workbook_name()  MsgBox Thisworkbook.name  End Sub     Sub active_name()  MsgBox Activeworkbook.name  End Sub  

Оба вернут один и тот же результат,

Есть ли какие-либо другие случаи, когда мы должны использовать, в частности, эту рабочую книгу, где ActiveWorkbook не работает

Комментарии:

1. Объект ThisWorkbook ссылается на книгу, в которой находится код. Объект ActiveWorkbook ссылается на книгу, которая в данный момент активна.

2. Спасибо за быстрый ответ Om3r

Ответ №1:

Activeworkbook.name используется для получения имени активной книги из n разных открытых книг.

Thisworkbook.name используется для получения имени книги, в которой код записан или хранится в модуле этой книги.

Например, если вы пишете код в модуле или листе рабочей книги A , то Thisworkbook.name он вернется A независимо от того, какая из них является activeworkbook

Комментарии:

1. Просто чтобы немного уточнить это — ThisWorkbook относится к рабочей книге, в которой находится код, выполняемый в этот момент времени. Это то, что, я думаю, вы все равно говорите в своем ответе, но подумали, что это может быть немного яснее. 1