我怎样才能纠正这个"运行时错误1004对象_global的方法范围失败"错误?

时间:2016-05-08 18:30:14

标签: excel excel-vba vba

我尝试根据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错误。

为什么?

3 个答案:

答案 0 :(得分:1)

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

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

答案 1 :(得分:1)

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

_.reject(myArray, _.property('Flag'));

答案 2 :(得分:0)

如果您想使用 customer_id 作为范围(又名 cell )引用并在您的串联字符串文件名中检索Range.Value property,那么您需要到Set它。

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

如果您只想将 customer_id 作为范围的值,那么您不需要Set它,但是您将其用作具有存储值的变量,而不是作为Range object

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

未声明 customer_id 表明应如何使用它的含糊不清。