作者:L灬MOXIE | 来源:互联网 | 2023-05-22 16:06
当您只输入工作表()时,ActiveWorkbook或ThisWorkbook的默认范围是什么?对于那些不了解这些区别的人来说,当您希望在切换到不同的工作簿时运行宏时,它们在Excel 2013中尤为重要.
1> Tim Williams..:
通常在标准模块中,不合格的Worksheets()
将引用ActiveWorkbook,除非它在ThisWorkbook
模块中,在这种情况下它将引用包含的工作簿.
同样,标准模块中的不合格Me
或Range()
(或Cells()
/ Rows()
)将引用ActiveSheet,但在工作表代码模块中将引用相应的工作表.
Unqualified... Where Implicit Qualifier
-------------- -------------- -------------------
Worksheets(), ThisWorkbook Containing workbook (Me)
Sheets() Any other module Active workbook (via [_Global])
Range(), Cells(), Sheet module Containing sheet (Me)
Rows(), Columns(), Any other module Active sheet (via [_Global])
Names()
最简单的方式,以避免不必记住任何的这是一直完全限定任何Columns()
,Me
,Worksheets
或Sheets
参考.
附带说明,[Rubberduck](http://www.github.com/rubberduck-vba/Rubberduck)具有代码检查功能,可以检查项目中所有隐式的“ ActiveSheet”和“ ActiveWorkbook”引用(并提供一个快速修复程序)他们明确)。