以前使用的VB6程序现在在一台PC上打开excel 2010电子表格时失败

以前使用的VB6程序现在在一台PC上打开excel 2010电子表格时失败,excel,vb6,windows-xp,Excel,Vb6,Windows Xp,我有一个问题,刚刚开始与现有的VB6程序。同样的程序仍然可以在其他电脑上运行。所有电脑都是XP(SP 3),包括程序失败的地方,理论上应该是相同的版本 尝试打开excel 2010电子表格时,代码失败。 错误是 对象的错误方法失败 我在网上搜索了这个错误,一个建议是在这个报告中失败的PC上尝试“Dependency Walker” 找不到MPR.DLL和SHLWAPI.DLL作为延迟加载依赖模块 在工作PC上,只有MPR报告为警告 出现故障的PC上存在SHLWAPI.DLL。 我试图注册SHLW

我有一个问题,刚刚开始与现有的VB6程序。同样的程序仍然可以在其他电脑上运行。所有电脑都是XP(SP 3),包括程序失败的地方,理论上应该是相同的版本

尝试打开excel 2010电子表格时,代码失败。 错误是

对象的错误方法失败

我在网上搜索了这个错误,一个建议是在这个报告中失败的PC上尝试“Dependency Walker” 找不到MPR.DLL和SHLWAPI.DLL作为延迟加载依赖模块

在工作PC上,只有MPR报告为警告

出现故障的PC上存在SHLWAPI.DLL。 我试图注册SHLWAPI,但无法注册

代码

Public Sub Populate_booked(sched_file)
   On Error GoTo Populate_booked_error
   Dim xl As New Excel.Application
   Dim xl2 As New Excel.Application
   Set xlwbook = xl.Workbooks.Open(sched_file)
设置xlwbook行失败

sched_文件是局域网驱动器上的excel文件。出现故障的电脑对文件具有完全读/写访问权限

有人有什么建议吗?

一个建议:

将代码更改为:

Public Sub Populate_booked(sched_file)
   On Error GoTo Populate_booked_error
   Dim xl As Excel.Application
   Dim xl2 As Excel.Application

   Set xl = New Excel.Application
   Set xl2 = New Excel.Application

   Set xlwbook = xl.Workbooks.Open(sched_file)
这不会真正解决您的问题,但会缩小可能的原因。在当前代码中,行

Set xlwbook = xl.Workbooks.Open(sched_file)
将做两件事:

  • 由于这是您第一次使用xl变量,并且它是新的,程序将创建一个新的Excel.Application实例
  • 打开文件(如果1成功)

  • 更改将使您能够知道第1部分或第2部分是否失败。

    谢谢您的建议。我想试试。SHLWAPI是一个核心操作系统库,不可注册,因为它不是一个自动化服务器,这听起来更可能是Excels automation的问题,您可以试试EXCEL.EXE–REGSERVER