2016-02-16 4 views
6

Есть ли разница между Thisworkbook и ActiveWorkbook.Разница между Thisworkbook.name и Activeworkbook.name в VBA

Пример кода:

Sub workbook_name() 
    MsgBox Thisworkbook.name 
    End Sub 



Sub active_name() 
    MsgBox Activeworkbook.name 
    End Sub 

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

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

+1

ThisWorkbook объект относится к книге, что код находится. Объект ActiveWorkbook относится к книге который в настоящее время активен. – 0m3r

+0

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

ответ

8

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

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

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

+3

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

Смежные вопросы