ActiveSheet,ActiveWorkbook.ActiveSheet和Application.ActiveSheet的行为有何不同?

时间:2017-07-11 01:28:15

标签: excel-vba worksheet vba excel

我一直习惯使用这样的ActiveSheetActiveWorkbook.ActiveSheet。我最近偶然发现this Microsoft page的代码包含ActiveSheet而没有ActiveWorkbook的代码。该页面的标题是Application.ActiveSheet属性。

这三行代码之间有区别吗?

ActiveSheet
ActiveWorkbook.ActiveSheet
Application.ActiveSheet

1 个答案:

答案 0 :(得分:5)

这些都是指活动表的相同内容,但上下文可能与预期不符。 ActiveSheet是限制性最小的,指的是“当前”工作簿可能是什么。 ActiveWorkbook.ActiveSheet只是让它更清晰一些。将其与运行代码的工作簿Thisworkbook进行对比。 Application.ActiveSheet指的是 活动工作簿或指定的工作簿/窗口。 如果您打开了多个工作簿,则最好明确指出您所指的对象。

重要说明:单独使用并在某些工作簿的代码模块ThisWorkbook中编写时,ActiveSheetApplication.ActiveSheetActiveWorkbook.ActiveSheet(始终相同)不同。在这种特殊情况下,即使ActiveSheet不是Excel应用程序的活动工作簿,ThisWorkbook.ActiveSheet也会引用ThisWorkbook