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

时间:2013-11-01 09:59:47

标签: excel vb6 windows-xp

我有一个刚刚开始使用现有VB6程序的问题。同样的程序仍适用于其他PC。所有的PC都是XP(SP 3),包括程序失败的地方,理论上应该具有相同的构建。

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

对象的错误方法〜失败

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

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

SHLWAPI.DLL出现在发生故障的PC上。 我试图注册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)

Set xlwbook行失败

sched_file是LAN驱动器上的excel文件。失败的PC具有对文件的完全读/写访问权。

有人有任何建议吗?

1 个答案:

答案 0 :(得分:0)

一个建议:

将您的代码更改为:

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)

会做两件事:

  1. 由于这是您第一次使用xl变量并且它被Dim'd为New,程序将创建一个新的Excel.Application实例。
  2. 打开文件(如果1成功)。
  3. 通过更改,您可以了解失败的第1部分还是第2部分。