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

不过我更喜欢第一个解决方案,否则如果您在具有不同语言设置的计算机上执行宏,它可能会失败。