【发布时间】:2014-09-16 14:26:30
【问题描述】:
我知道很多人都谈到了完全合格的范围。我只是想知道您需要深入了解它才能避免问题。
在示例中,我使用标注变量限定了我的工作表。那么是否有必要 100% 可靠,才能在括号范围内进一步限定?
dim myWS as Worksheet
set myWS = Thisworkbook.Activesheet
-- 使用方法A?
myWS.Range(Cells(1,5), Cells(500,20)).ClearContents
-- 还是方法B?
myWS.Range(myWS.Cells(1,5), myWS.Cells(500,20)).ClearContents
Range 括号内的“Cells”是否默认引用调用它的 myWS.Range,或者“Cells”是否默认引用活动工作表?
如果将 myWS 设置为活动工作表以外的工作表,我会从 Cells 获得意外结果吗?
不难,只是如果你说第二种方式更靠谱的话,我就得回去改很多地方了!
【问题讨论】:
-
Cells对象引用活动工作表。如果在执行此行时myWS未处于活动状态,VBA 将抛出错误。 -
我不确定,但您可以轻松测试它,myWS.range(myAnotherWS.cell, someOtherWs.cell)
-
Method B是正确的方式 -
搜索 Stackoverflow。我已经回答了类似的问题