1004错误:无法重置变量

时间:2016-12-15 22:27:13

标签: excel vba excel-vba

我正在尝试做一件非常简单的事情。我想在变量中存储一系列动态值。我使用以下代码:

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

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

  

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

修复它的唯一方法是重新启动excel /退出工作簿。

我的猜测是,问题是一旦设置了变量,就无法重置。作为参考,我正在为特定的工作簿创建此宏。

1 个答案:

答案 0 :(得分:4)

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

如果“数据输入”未激活,则此操作将失败,因为默认情况下Range("A1")将引用活动工作表。

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

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

无论哪个工作表处于活动状态,上述代码都应该有效(只要活动工作簿是正确的工作表)