0

我有一个刚刚从现有 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)

设置 xlwbook 行失败

sched_file 是 LAN 驱动器上的 excel 文件。发生故障的 PC 具有对该文件的完全读/写访问权限。

有没有人有什么建议?

4

1 回答 1

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 as New,程序将创建一个新的 Excel.Application 实例。
  2. 打开文件(如果 1 成功)。

更改将使您知道失败的是第 1 部分还是第 2 部分。

于 2013-11-01T12:42:18.610 回答