2016-11-04 69 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:=參考 –