我知道这是一个愚蠢的问题,但我在机智的最终试图弄清楚。在Excel中的范围方法VBA
这段小小的代码导致运行时错误'1004':对象'_Worksheet'的方法'范围'失败。但只有当Sheet3不是活动工作表时。它在Sheet3处于活动状态时会发生什么。
With Sheet3.Range(Cells(1, 1), Cells(nrows1, ncols1))
.Clear
.Value = SCDevNeeds1
End With
而且,如果我改变的参考表的标签名称,我仍然得到一个运行时错误,但是这一次它是一个应用程序定义或对象定义的错误。这种情况只发生在纸张不活动时:
With Sheets("newest").Range(Cells(1, 1), Cells(nrows1, ncols1))
.Clear
.Value = SCDevNeeds1
End With
我在想什么?
线被执行时什么是** nrows1,ncols1,**和** ** SCDevNeeds1价值观 – 2014-10-18 21:41:34
如果您不具备参考特定工作表的资格,单元格()始终指向活动工作表。您的代码错误是因为Range引用了sheet3,但Cells()不会除非sheet3处于活动状态。 – 2014-10-18 21:43:28
在这种情况下,是的,但并不总是取决于代码的位置,这使得它更容易出错。 (请参阅下面的答案) – KekuSemau 2014-10-18 22:02:16