Excel自动化上的VBScript错误1004

时间:2016-04-05 09:33:27

标签: excel vbscript excel-2010 windows-server-2008

我必须将一堆使用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按钮的状态

Disabled Macro Buttons

1 个答案:

答案 0 :(得分:0)

花了一些时间才能找到关于问题原因的明确证据,最终是非常愚蠢。

Excel已安装在没有VBA功能的目标服务器上。

从IT部门安装后,Excel不再剥离宏和VBA内容,脚本可以成功执行Workbooks.Open