.Worksheet properties, when used with a range, seem to reference to the same worksheet object where
Range is located.
For example, both of these lines return the same value:
Debug.Print Selection.Parent.Name Debug.Print Selection.Worksheet.Name
Is there a difference between the two? Are there advantages/disadvantages to each method?
Unless you can guarantee
Selection is always part of a Worksheet, it’s not said that
Selection.Parent.Name will yield the same result as
Selection.Worksheet.Name. If it’s “in” other types of objects (charts or graphics, for example) the result could be quite different – you’d need to do some testing.
Selection.Worksheet.Name is more exact (and, as someone has pointed out in Comments, potentially faster in execution). But if you can’t guarantee
Selection is going to reference a
Worksheet it can trigger an error or yield an unexpected result.