2016-11-04 63 views
2

我正在尝试将Name添加到我的工作簿中。该参考文献有一个INDEX公式。我在这行代码得到一个错误:VBA错误在参考中添加一个名称与公式

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 

回答

3

当您使用创造了VBA公式,你需要使用英语书写,这意味着点作为小数点分隔符和逗号函数参数分隔符。

您可以做什么@brettdj没有和使用逗号

Reference = "=INDEX(tabla_1,,MATCH(" & "hszis" & 1 & ",hszi_list,0))" 

或使用RefersToLocal代替RefersTo

ActiveWorkbook.Names.Add Name:=RangeName, RefersToLocal:=Reference 

我宁愿第一个解决方案,但因为否则,如果您执行它可能会失败机器上的宏具有不同的语言设置。

+0

感谢它工作:) –

2

Reference = "=INDEX(tabla_1,MATCH(" & "hszis" & i & ",hszi_list,0))"

运行它和它的工作。建议你尝试删除奖金;

Reference = "=INDEX(tabla_1;MATCH(" & "hszis" & i & ";hszi_list;0))"

+1

你的意思是奖金';'? –

+0

我在这一行得到错误 –

+0

ActiveWorkbook.Names.Add名称:= RangeName,RefersTo:=参考 –