В чем разница между Range.Parent и Range.Worksheet в VBA?
.Parent
а также .Worksheet
свойства при использовании с диапазоном, кажется, ссылаются на тот же объект рабочего листа, где Range
расположен.
Например, обе эти строки возвращают одно и то же значение:
Debug.Print Selection.Parent.Name
Debug.Print Selection.Worksheet.Name
Есть ли разница между ними? Есть ли преимущества / недостатки каждого метода?
1 ответ
Если вы не можете гарантировать Selection
всегда является частью рабочего листа, не сказано, что Selection.Parent.Name
даст тот же результат, что и Selection.Worksheet.Name
, Если это "внутри" других типов объектов (например, диаграмм или графики), результат может быть совсем другим - вам нужно провести некоторое тестирование.
Так, Selection.Worksheet.Name
является более точным (и, как кто-то указал в комментариях, потенциально быстрее в исполнении). Но если вы не можете гарантировать Selection
собирается сослаться на Worksheet
это может вызвать ошибку или привести к неожиданному результату.