我试图运行一个简单的VBScript示例(不是Excel宏)并且遇到您输入的名称无效问题。
名称有下划线,没有空格,工作簿是全新的(名称管理器不显示任何内容)。此外,尽管大多数Web示例都显示:=这对我来说是语法错误。
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open("C:\test.xlsx")
'This line fails
objExcel.ActiveWorkbook.Names.Add Name="_myRange", RefersTo="Sheet1!$A$1:$D$3"
objExcel.ActiveWorkbook.Save
objExcel.ActiveWorkbook.Close
objExcel.Application.Quit
WScript.Echo "Finished."
WScript.Quit
有什么想法吗?
答案 0 :(得分:2)
Name:="_myRange"
语法是命名参数语法。正如您所观察到的那样,您不能将其与VBScript
一起使用。但是,您不能简单地将其更改为Name="_myRange"
。 Name="_myRange"
将导致FALSE,因此您尝试使用FALSE作为名称。这就是错误的原因。
您必须按正确顺序放置参数而不指定它们。
objExcel.ActiveWorkbook.Names.Add "_myRange", "=Sheet1!$A$1:$D$3"
哦,引用必须以=
开头。
答案 1 :(得分:-1)
您确定您的语法正确吗? 如果按名称引用参数,则必须添加:=
试试这个:调用objExcel.ActiveWorkbook.Names.Add(“_ myRange”,“Sheet1!$ A $ 1:$ D $ 3”)