1
只需键入工作表()什么是默认作用域ActiveWorkbook或ThisWorkbook?对于那些不知道这些区别的人来说,当您切换到不同的工作簿时,希望运行宏时,它们在Excel 2013中特别重要。工作表和单元格和范围的默认范围是什么?
只需键入工作表()什么是默认作用域ActiveWorkbook或ThisWorkbook?对于那些不知道这些区别的人来说,当您切换到不同的工作簿时,希望运行宏时,它们在Excel 2013中特别重要。工作表和单元格和范围的默认范围是什么?
典型地,标准模块中的不合格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
最简单的方法,以避免对的这个任何是记得总是完全限定任何Worksheets
,Sheets
,Range
,或者Cells
参考。
这是Activeworkbook,除非在前面的代码中另有指定 – Alex 2015-02-10 18:51:07
@Alex有没有一种方法可以用前面的代码更改默认行为,以便它始终引用ThisWorkbook?或者我每次只需要声明ThisWorkbook就可以获得一些东西(这就是我目前的做法)。 – CodeCamper 2015-02-13 16:55:11
由于Tim的回答如下,你可以把你的代码放在这个工作簿模块中,并且不合格的工作表将被默认为这个工作表 – Alex 2015-02-17 15:17:39