我有一个问题,它刚刚开始使用现有的VB6程序。相同的程序仍然可以在其他PC上运行。所有的PC都是XP(SP 3),包括程序失败的地方,理论上应该具有相同的构建。
尝试打开 excel 2010 电子表格时代码失败。错误是
错误方法 ~ 对象 ~ 失败
我在网上搜索了这个错误,建议尝试"依赖沃克"在失败的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 文件。出现故障的电脑对文件具有完全读/写访问权限。
有人有什么建议吗?
一个建议:
将代码更改为:
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 部分失败。