Excel 自动化上的 VBScript 错误 1004
VBScript error 1004 on Excel Automation
我必须将一堆使用 Excel 自动化的 VBScript 移动到新服务器。我知道这不是 Excel 自动化的推荐用例,但这仍然是我被要求做的。
大多数情况下,脚本无需任何更改即可运行,但其中一些无法正常运行。
旧服务器运行 Windows 2003,意大利语运行 Excel 2010。
新服务器运行 Windows 2008 R2,英文为 Excel 2010。
其中一个脚本在执行与此类似的代码时出现错误:
Option Explicit
On Error Resume Next
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
Dim xlBook
Set xlBook = objExcel.Workbooks.Open("myTemplateFile.xlsm")
WScript.Echo("Error: " & Err.Number & " Description " & Err.Description)
objExcel.Application.Quit
要打开的文件是 "Macro enabled Excel spreadsheet" 在原始(或我的开发)机器上正常打开的文件。我想我已经启用了所有 Excel 选项来打开带有宏的电子表格,但是代码失败了:
1004 Unable to get the Open property of the Workbooks class
如果我尝试在目标服务器上的 Excel 应用程序中打开 myTemplateFile.xlsm
,它会指出有一些不可读的内容,然后将其删除。剥离出来的内容就是宏源。
有人遇到过类似的问题吗?
编辑
我可以添加一些其他信息:
在源机器上安装了 32 位版本的 Office 2010
在目标机器上安装了 64 位版本的 Office 2010
我还注意到,尽管在功能区中启用并显示了宏功能,但 VBA 宏图标在空工作簿上也是灰色(禁用)的。
另一个编辑
为了清楚起见,下面的图片显示了 Excel 按钮的状态
花了一些时间才对问题的原因进行了明确的证明,最后非常愚蠢。
Excel 安装在没有 VBA 功能的目标服务器上。
从IT部门安装后,Excel不再剥离宏和VBA内容,脚本可以成功执行Workbooks.Open
我必须将一堆使用 Excel 自动化的 VBScript 移动到新服务器。我知道这不是 Excel 自动化的推荐用例,但这仍然是我被要求做的。
大多数情况下,脚本无需任何更改即可运行,但其中一些无法正常运行。
旧服务器运行 Windows 2003,意大利语运行 Excel 2010。
新服务器运行 Windows 2008 R2,英文为 Excel 2010。
其中一个脚本在执行与此类似的代码时出现错误:
Option Explicit
On Error Resume Next
Dim objExcel
Set objExcel = CreateObject("Excel.Application")
Dim xlBook
Set xlBook = objExcel.Workbooks.Open("myTemplateFile.xlsm")
WScript.Echo("Error: " & Err.Number & " Description " & Err.Description)
objExcel.Application.Quit
要打开的文件是 "Macro enabled Excel spreadsheet" 在原始(或我的开发)机器上正常打开的文件。我想我已经启用了所有 Excel 选项来打开带有宏的电子表格,但是代码失败了:
1004 Unable to get the Open property of the Workbooks class
如果我尝试在目标服务器上的 Excel 应用程序中打开 myTemplateFile.xlsm
,它会指出有一些不可读的内容,然后将其删除。剥离出来的内容就是宏源。
有人遇到过类似的问题吗?
编辑
我可以添加一些其他信息:
在源机器上安装了 32 位版本的 Office 2010
在目标机器上安装了 64 位版本的 Office 2010
我还注意到,尽管在功能区中启用并显示了宏功能,但 VBA 宏图标在空工作簿上也是灰色(禁用)的。
另一个编辑
为了清楚起见,下面的图片显示了 Excel 按钮的状态
花了一些时间才对问题的原因进行了明确的证明,最后非常愚蠢。
Excel 安装在没有 VBA 功能的目标服务器上。
从IT部门安装后,Excel不再剥离宏和VBA内容,脚本可以成功执行Workbooks.Open