我必须将一堆使用Excel自动化的VBScript移动到新服务器上。我知道这不是Excel自动化的推荐用例,但这仍然是我被要求做的。
大多数情况下,脚本无需任何更改即可正常工作,但其中一些脚本无法正常工作。
旧服务器使用意大利语中的Excel 2010运行Windows 2003。
新服务器使用英文Excel 2010运行Windows 2008 R2。
执行与此类似的代码时,其中一个脚本会出错:
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
要打开的文件是原始(或我的开发)计算机上正常打开的“启用宏的Excel电子表格”。我想我已启用所有Excel选项以使用宏打开电子表格,但代码失败了:
1004无法获取Workbooks类的Open属性
如果我尝试在目标服务器上的Excel应用程序中打开myTemplateFile.xlsm
,它会指出存在一些不可读的内容然后将其删除。剥离的内容是宏观来源。
有人遇到类似问题吗?
修改
我可以添加一些其他信息:
在源计算机上安装了32位版本的Office 2010
在目标计算机上安装了64位版本的Office 2010
我还注意到,虽然在功能区中启用了宏功能并且可见,但在空工作簿上也会显示(禁用)VBA和宏图标。
另一个编辑
为了清楚起见,以下图片显示了Excel按钮的状态
答案 0 :(得分:0)
花了一些时间才能找到关于问题原因的明确证据,最终是非常愚蠢。
Excel已安装在没有VBA功能的目标服务器上。
从IT部门安装后,Excel不再剥离宏和VBA内容,脚本可以成功执行Workbooks.Open