首页 > 解决方案 > VBA 中的“Range.Parent”和“Range.Worksheet”有什么区别?

问题描述

.Parent和属性,当与范围一起使用.Worksheet时,似乎引用所在的同一工作表对象Range

例如,这两行都返回相同的值:

Debug.Print Selection.Parent.Name
Debug.Print Selection.Worksheet.Name

两者有区别吗?每种方法都有优点/缺点吗?

标签: vbaexcelpropertiesworksheet

解决方案


除非您可以保证Selection始终是工作表的一部分,否则不会说Selection.Parent.Name会产生与Selection.Worksheet.Name. 如果它“在”其他类型的对象(例如图表或图形)中,结果可能会大不相同——您需要进行一些测试。

所以,Selection.Worksheet.Name更准确(并且,正如有人在评论中指出的那样,执行速度可能更快)。但是,如果您不能保证Selection要引用 aWorksheet它可能会触发错误或产生意外结果。


推荐阅读