2015-02-10 104 views
1

只需键入工作表()什么是默认作用域ActiveWorkbook或ThisWorkbook?对于那些不知道这些区别的人来说,当您切换到不同的工作簿时,希望运行宏时,它们在Excel 2013中特别重要。工作表和单元格和范围的默认范围是什么?

+0

这是Activeworkbook,除非在前面的代码中另有指定 – Alex 2015-02-10 18:51:07

+0

@Alex有没有一种方法可以用前面的代码更改默认行为,以便它始终引用ThisWorkbook?或者我每次只需要声明ThisWorkbook就可以获得一些东西(这就是我目前的做法)。 – CodeCamper 2015-02-13 16:55:11

+0

由于Tim的回答如下,你可以把你的代码放在这个工作簿模块中,并且不合格的工作表将被默认为这个工作表 – Alex 2015-02-17 15:17:39

回答

10

典型地,标准模块中的不合格Worksheets()将引用ActiveWorkbook 除非它是ThisWorkbook模块,在这种情况下,将引用包含工作簿英寸

同样,标准模块中的不合格Range()将引用ActiveSheet,但在表单代码模块中将引用相应的工作表。

Unqualified...  Where    References 
--------------  --------------  ------------------- 
Worksheets()   Regular module  Active workbook 
        Sheet module  Active workbook 
        ThisWorkbook  Containing workbook 

Range() or Cells() Regular module  Active sheet 
        Sheet module  Containing sheet 
        ThisWorkbook  Active sheet   

最简单的方法,以避免对的这个任何是记得总是完全限定任何WorksheetsSheetsRange,或者Cells参考。