Excel中input的名称“无效”错误

我试图运行一个简单的VBScript示例(而不是一个Excelmacros),并运行到您input的名称是无效的问题。

名称有一个下划线,没有空格,工作簿是全新的(名称pipe理器什么也没有显示)。 另外,虽然大多数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 

有任何想法吗?

Name:="_myRange"语法是命名的参数语法。 正如你所看到的,你不能在VBScript使用它。 但是,你不能简单地把它改成Name="_myRange"Name="_myRange"将导致FALSE,所以你正在尝试使用FALSE作为名称。 这就是为什么错误。

您必须按照正确的顺序放置参数,而不必命名它们。

objExcel.ActiveWorkbook.Names.Add "_myRange", "=Sheet1!$A$1:$D$3"

哦,参考文献必须以=开头。

你需要在冒号前加上.Names.Add

objExcel.ActiveWorkbook.Names.Add Name:="_myRange", RefersTo:="Sheet1!$A$1:$D$3"

这是在VBA,我假设(希望正确),它适用于VBScript。

你确定你的语法是正确的? 如果按名称引用参数,则必须添加:=

试试这个:调用objExcel.ActiveWorkbook.Names.Add(“_myRange”,“Sheet1!$ A $ 1:$ D $ 3”)