如何更正此"runtime error 1004 method range of object _global failed"错误?



我正试图打开一个基于excel工作手册中命名引用的文件。我的代码:

Sub OpenCustomerData()
    wb = ActiveWorkbook.Name
    reference = "[" & wb & "]Individual" & "!customer_id"
    customer_id = Range(reference)
    Workbooks.Open Filename:=customer_id.Value & ".csv"
End Sub

在代码中,reference看起来是对的:[MyBook.xlsm]Individual!customer_id,但当我将其作为参数传递给Range()函数时,我得到了1004错误。

为什么?

如果您仍然在活动工作簿中,那么只需使用工作表名称并限定范围:

Sub OpenCustomerData()
    Workbooks.Open Filename:=Sheets("Individual").Range("customer_id").Value
End Sub

您可以将名称范围设置为类似的变量

Set CustID = ActiveWorkbook.Names("customer_id").RefersToRange
Workbooks.Open Filename:=CustID.Value & ".csv"

如果您想使用customer_id作为范围(又名单元格)引用,并在连接字符串文件名中从中检索range.Value属性,则需要Set

SET customer_id = Range(reference)
Workbooks.Open Filename:=customer_id.Value & ".csv"

如果您只想将customer_id作为要开始的范围的值,则不需要Set,而是将其用作具有存储值的变量,而不是range对象。

customer_id = Range(reference).VALUE
Workbooks.Open Filename:=customer_id & ".csv"

不声明customer_id说明了应如何使用它的模糊性。

最新更新