2016-11-04 3 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

を削除してみ提案します。

あなたが実行した場合、それ以外の場合は失敗する可能性があるため、私も最初のソリューションを好むだろう@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))"

でそれを実行し、それが働きました。あなたは、あなたが関数の引数の区切りとして小数点の記号やカンマなどの点を意味し、英語表記を、使用する必要がVBAで数式を作成、使用している場合はボーナス;

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

+1

あなたはボーナス ';'を意味しますか? –

+0

この行でエラーが発生します –

+0

ActiveWorkbook.Names.Add名前:= RangeName、RefersTo:=参照 –

関連する問題