我一直习惯使用这样的ActiveSheet
:ActiveWorkbook.ActiveSheet
。我最近偶然发现this Microsoft page的代码包含ActiveSheet
而没有ActiveWorkbook
的代码。该页面的标题是Application.ActiveSheet
属性。
这三行代码之间有区别吗?
ActiveSheet
ActiveWorkbook.ActiveSheet
Application.ActiveSheet
答案 0 :(得分:5)
这些都是指活动表的相同内容,但上下文可能与预期不符。 ActiveSheet
是限制性最小的,指的是“当前”工作簿可能是什么。
ActiveWorkbook.ActiveSheet
只是让它更清晰一些。将其与运行代码的工作簿Thisworkbook
进行对比。
Application.ActiveSheet
指的是 活动工作簿或指定的工作簿/窗口。
如果您打开了多个工作簿,则最好明确指出您所指的对象。
重要说明:单独使用并在某些工作簿的代码模块ThisWorkbook
中编写时,ActiveSheet
与Application.ActiveSheet
和ActiveWorkbook.ActiveSheet
(始终相同)不同。在这种特殊情况下,即使ActiveSheet
不是Excel应用程序的活动工作簿,ThisWorkbook.ActiveSheet
也会引用ThisWorkbook
。