1004错误:无法重置variables

我正在尝试做一个非常简单的事情。 我想在一个variables中存储一系列的dynamic值。 我使用下面的代码:

Sub Main() Set RawStuff = Worksheets("Data Input").Range(Range("A1"), Range("A1").End(xlDown)) End Sub 

第一次工作正常,第二次运行它会产生以下错误:

运行时错误“1004”:应用程序定义或对象定义的错误

唯一的方法来解决它是通过重新启动Excel /退出工作簿。

我的猜测是,一旦variables被设置,它就不能被重置。 作为参考,我正在为特定的工作簿创build此macros。

 Set RawStuff = Worksheets("Data Input").Range(Range("A1"), Range("A1").End(xlDown)) 

如果“数据input”未激活,这将失败,因为默认Range("A1")将引用活动工作表。

最好使用工作表对象限定所有对Range()Cells()的调用:

 With Worksheets("Data Input") Set RawStuff = .Range(.Range("A1"), .Range("A1").End(xlDown)) End With 

无论哪个工作表处于活动状态(只要活动工作簿是正确的),上面的代码都可以工作。