vba - VBA中 'Range.Parent'和 'Range.Worksheet'有什么区别?

标签 vba excel properties worksheet

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

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

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

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

最佳答案

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

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

关于vba - VBA中 'Range.Parent'和 'Range.Worksheet'有什么区别?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50381793/

相关文章:

vba - 您能否帮助我更多地了解有关VBA错误处理的良好做法?

sql - 如何在SQL中实现Excel COMBIN函数

objective-c - 为什么在 Objective-C 的初始化方法中使用 self 不是一个好习惯?

c# - 无副作用二传手的方法

vba - 从 VBA 运行第 3 方 Excel 插件

VBA For 循环只改变一张纸

vba - 如何在 VBA (Mac) 中将文件保存到桌面

vba - Excel用户定义的函数返回所有工作表中相同范围的平均值,但此工作表除外

jsf - 该类没有属性

internet-explorer - 使用 VBA 自动化 IE - 单击 Javascript 链接(无 anchor 标记)