ActiveSheet、ActiveWorkbook.ActiveSheet 和 Application.ActiveSheet 有何不同?

How do ActiveSheet, ActiveWorkbook.ActiveSheet and Application.ActiveSheet behave differently?

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

这三行代码有区别吗?

ActiveSheet
ActiveWorkbook.ActiveSheet
Application.ActiveSheet

这些都指的是同一件事活跃的sheet,但上下文可能与预期的不一样。 ActiveSheet 是限制最少的,指的是 'current' 工作簿可能是什么。 ActiveWorkbook.ActiveSheet 只是让它更清楚一点。将此与代码为 运行 的工作簿 Thisworkbook 进行对比。 Application.ActiveSheet 引用 活动工作簿或命名工作簿/window。 如果您打开了多个工作簿,最好明确说明您所指的对象。

重要说明:当单独写入某些工作簿的代码模块 ThisWorkbook 时,ActiveSheet 不同于 Application.ActiveSheetActiveWorkbook.ActiveSheet(它们始终是相同的)。在这种特殊情况下,ActiveSheet 指的是 ThisWorkbook.ActiveSheet,即使 ThisWorkbook 不是 Excel 应用程序的活动工作簿。