VBA 在参考中添加带有公式的名称时出错
VBA error adding a Name with a formula in the reference
我正在尝试将 Name
添加到我的工作簿中。参考有一个 INDEX
公式。这行代码出现错误:
ActiveWorkbook.Names.Add Name:=RangeName, RefersTo:=Reference
我用 ActiveWorkbook
试过了,还试过定义一个工作表。
我猜是不行,因为名称范围不能匹配工作表,因为它有一个功能,但我不知道如何解决。有人有什么建议吗?
Sub NameRange_Add3()
Dim RangeName As String
Dim Reference As String
Dim i As Integer
For i = 2 To 6
RangeName = "list" & i
Reference = "=INDEX(tabla_1;;MATCH(" & "hszis" & i & ";hszi_list;0))"
ActiveWorkbook.Names.Add Name:=RangeName, RefersTo:=Reference
Next i
End Sub
我运行它与
Reference = "=INDEX(tabla_1,MATCH(" & "hszis" & i & ",hszi_list,0))"
它奏效了。建议您尝试移除奖金 ;
Reference = "=INDEX(tabla_1;MATCH(" & "hszis" & i & ";hszi_list;0))"
当您在VBA中使用创建公式时,您需要使用英文符号,这意味着点作为小数点分隔符,逗号作为函数参数分隔符。
您可以按照@brettdj 的做法使用逗号
Reference = "=INDEX(tabla_1,,MATCH(" & "hszis" & 1 & ",hszi_list,0))"
或使用 RefersToLocal
代替 RefersTo
ActiveWorkbook.Names.Add Name:=RangeName, RefersToLocal:=Reference
不过我更喜欢第一个解决方案,否则如果您在具有不同语言设置的计算机上执行宏,它可能会失败。
我正在尝试将 Name
添加到我的工作簿中。参考有一个 INDEX
公式。这行代码出现错误:
ActiveWorkbook.Names.Add Name:=RangeName, RefersTo:=Reference
我用 ActiveWorkbook
试过了,还试过定义一个工作表。
我猜是不行,因为名称范围不能匹配工作表,因为它有一个功能,但我不知道如何解决。有人有什么建议吗?
Sub NameRange_Add3()
Dim RangeName As String
Dim Reference As String
Dim i As Integer
For i = 2 To 6
RangeName = "list" & i
Reference = "=INDEX(tabla_1;;MATCH(" & "hszis" & i & ";hszi_list;0))"
ActiveWorkbook.Names.Add Name:=RangeName, RefersTo:=Reference
Next i
End Sub
我运行它与
Reference = "=INDEX(tabla_1,MATCH(" & "hszis" & i & ",hszi_list,0))"
它奏效了。建议您尝试移除奖金 ;
Reference = "=INDEX(tabla_1;MATCH(" & "hszis" & i & ";hszi_list;0))"
当您在VBA中使用创建公式时,您需要使用英文符号,这意味着点作为小数点分隔符,逗号作为函数参数分隔符。
您可以按照@brettdj 的做法使用逗号
Reference = "=INDEX(tabla_1,,MATCH(" & "hszis" & 1 & ",hszi_list,0))"
或使用 RefersToLocal
代替 RefersTo
ActiveWorkbook.Names.Add Name:=RangeName, RefersToLocal:=Reference
不过我更喜欢第一个解决方案,否则如果您在具有不同语言设置的计算机上执行宏,它可能会失败。