我正在尝试做一件非常简单的事情。我想在变量中存储一系列动态值。我使用以下代码:
Sub Main()
Set RawStuff = Worksheets("Data Input").Range(Range("A1"), Range("A1").End(xlDown))
End Sub
第一次正常工作,第二次运行它会产生以下错误:
运行时错误'1004':应用程序定义的错误或对象定义的错误
修复它的唯一方法是重新启动excel /退出工作簿。
我的猜测是,问题是一旦设置了变量,就无法重置。作为参考,我正在为特定的工作簿创建此宏。
答案 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
无论哪个工作表处于活动状态,上述代码都应该有效(只要活动工作簿是正确的工作表)