我正试图打开一个基于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说明了应如何使用它的模糊性。