ActiveWorkbook
Я бы сказал, что у нет плюсов для использования ActiveWorkbook
, поскольку прямая ссылка на то, с чем вы работаете, должна всегда будет предпочтительным, особенно в случае, указанном выше, когда задействовано несколько рабочих книг.Даже в случае открытия и работы с произвольными рабочими книгами, имена которых вам неизвестны (через цикл FSO
или Dir()
), вы всегда можете установить переменную рабочей книги, равную значению, возвращаемому функцией Workbook.Open
.
ThisWorkbook
Каждый раз, когда у вас есть код, работающий с несколькими книгами, или даже код, работающий с одной книгой, когда открыто несколько книг, я бы порекомендовал ThisWorkbook
.Он универсален в том смысле, что его можно использовать в модулях объектного кода и универсальных модулях, чтобы возвращать непротиворечивую ссылку на книгу, в которой он находится.На самом деле нет никаких минусов в явном указании ThisWorkbook
, когда вы на это ссылаетесь.
Me
Me
и ThisWorkbook
взаимозаменяемы при использовании их внутри модуля объектного кода ThisWorkbook
, но вне этого Me
относится к объекту, в котором он находится.Например, Me.Name
внутри модуля объектного кода рабочего листа даст вам имя рабочего листа.Если вы сделаете то же самое с модулем кода рабочей книги, вы получите название рабочей книги.
Для ясности и повторного использования я лично рекомендую ThisWorkbook
из всех 3.