ActiveSheet、ActiveWorkbook.ActiveSheet 和 Application.ActiveSheet 有何不同?
How do ActiveSheet, ActiveWorkbook.ActiveSheet and Application.ActiveSheet behave differently?
我习惯于这样使用 ActiveSheet
:ActiveWorkbook.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.ActiveSheet
和 ActiveWorkbook.ActiveSheet
(它们始终是相同的)。在这种特殊情况下,ActiveSheet
指的是 ThisWorkbook.ActiveSheet
,即使 ThisWorkbook
不是 Excel 应用程序的活动工作簿。
我习惯于这样使用 ActiveSheet
:ActiveWorkbook.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.ActiveSheet
和 ActiveWorkbook.ActiveSheet
(它们始终是相同的)。在这种特殊情况下,ActiveSheet
指的是 ThisWorkbook.ActiveSheet
,即使 ThisWorkbook
不是 Excel 应用程序的活动工作簿。