“Microsoft Excel 正在等待另一个应用程序完成 OLE 操作”中断 VBA 代码

“Microsoft Excel 正在等待另一个应用程序完成 OLE 操作”中断 VBA 代码

我有一个 Excel 工作簿,它正在运行一些我每天都会使用的 VBA 代码。在执行过程中,它一直挂在一个对话框中,显示“Microsoft Excel 正在等待另一个应用程序完成 OLE 操作”。单击“确定”可让代码继续,但通常对话框会在几秒钟后重新出现,并持续此过程 15 分钟到 2 小时(我放弃了)。在出现对话框时,代码正在使用 WMI 连接到远程计算机并运行查询:

If xlSheet.Cells(intRow, xlSheet.Range("Ping").Column).Value = "Yes" Then On Error Resume Next Set objWMI = GetObject("winmgmts:\\" & xlSheet.Cells(intRow, xlSheet.Range("Name").Column).Value & "\root\cimv2") If Err.Number = 0 Then Set colWin32OperatingSystem = objWMI.ExecQuery("SELECT Version, ServicePackMajorVersion, ServicePackMinorVersion FROM Win32_OperatingSystem")

似乎每次都挂起的是同一台计算机(行),所以我目前的理论是它在连接到有问题的计算机上的 WMI 时遇到了麻烦,它不是超时并继续运行,而是卡住了。我设置了一路检查,如果任何测试失败,就跳过当前计算机。它尝试解析 DNS 名称,然后尝试 ping,然后尝试通过 WMI 连接,然后运行查询。

我到处寻找答案,但没有成功。我对 OLE 并不完全熟悉,除了知道(对于 Excel)它是一种将非电子表格内容放入电子表格的方法。但我没想到这与通过 VBA 运行 WMI 查询有什么关系?有人能给我指明正确的方向吗?

相关内容