Excel vba添加命名范围

我试图用VBA添加命名范围

Nname = "FindMe" Formulas = "Vlookup(" & Chr(34) & Nname & Chr(34) & ";Translations!$A:$C;2;False)" ActiveWorkbook.Names.Add Name:=Nname, RefersToR1C1:=Formulas 

但是我得到了

VLOOKUP( “” FindMe “”; $翻译答:$ C; 2,假)

代替

VLOOKUP( “FindMe”;翻译$ A:$ C; 2,假)

为什么Excel把双重qoutes? 如何获得我想要的string?

VLOOKUP( “FindMe”;翻译$ A:$ C; 2,假)

分配给公式的string在string的开头缺less一个'='。 因此,该名称被分配一个string常量而不是一个公式。 当你在名称pipe理器对话框中查找时,你将会find这个名字FindMe指向=“Vlookup(”“FindMe”“; Translations!$ A:$ C; 2; False)”。 请注意,两个双引号表示string常量中的单引号。

如果在string的开始处添加“=”,则名称将被分配一个公式。 此外,该公式使用A1符号,但VBA代码使用RefersToR1C1。 这将导致公式分析错误。 将公式更改为R1C1表示法或更改VBA代码以使用RefersTo。 例如…

 Nname = "FindMe" Formulas = "=Vlookup(" & Chr(34) & Nname & Chr(34) & ",Translations!$A:$C,2,False)" ActiveWorkbook.Names.Add Name:=Nname, RefersTo:=Formulas