Excel VBA: 如何解决:当远程应用程序断开连接时,DDE 停止?

Excel VBA: How to Solve: DDE stops when remote application disconnect?

我有 (.xlsm) 文件通过 DDE 连接到价格提供商的流媒体应用程序,现在如果提供商应用程序断开连接(例如,由于网络断开),DDE 链接将停止,甚至 VBA 安排到检查上次我的 xlsm 数据更新是否通过 ThisWorkbook.UpdateRemoteReferences = True 使用 Application.OnTime 停止更新。

DDE 一致链接的最佳方案是什么,因为如果远程提供程序更新暂时停止,Application.OnTime 将永久停止!

最好的方法也是最理想的方法是在提供商的应用程序服务器重新连接后立即让 dde ​​工作,但是 我现在不知道是否有办法?

使用单元分配的参考集=ProviderServer|section!field

================

编辑以添加一个小的 OnTime 测试功能,该功能会在出现我不知道的任何 vba 错误时停止

Function TimingTest()
        Cells(4, 2).Value = Time
        Application.OnTime Now() + TimeValue("00:00:01"), "TimingTest"
End Function

这个函数在单独的(无链接)xlsm 文件中,但在一段时间后仍然停止,我无法得到 err.no。我可以得到它最后一次触发的时间,但是当 OnTime 调度代码停止时我无法做出反应。

如果 Application.OnTime 没有触发,则表示 Application.OnTime 调用的函数已挂起或崩溃。我的建议是您编写自己的 Sub 并从 Application.OnTime 调用它 --- 然后您可以使用 On Error 检查是否有任何崩溃,您也可以在某个地方登录函数成功退出,这将显示它是否挂起。不幸的是,如果它确实挂起,我不知道中断它的好方法。