0

是否有任何方法可以获取单独的 Excel 实例的 UserForms 集合(对象浏览器表明它是 VBA.Global 的成员)?我需要检查表单是否已加载,如果没有则适当地退出远程应用程序,以免留下任何幽灵进程 - 但我无法找到一种简单地检测到这一点的方法。

我可能会使用一系列复杂的 API 调用来识别所有 UserForm 窗口(“ThunderDFrames”),然后识别它们的父进程,然后识别它们的父进程的 hWnd,然后检测它是否与已知的 Application 对象的 hW​​nd 匹配由托管,但简单地获取 UserForms 集合以供应用程序测试会感觉更优雅。

4

1 回答 1

0

那么对于一个更简单的答案 - 不。为什么?.

因为正如@Daniel 指出的那样,不同进程中的每个内存都是相互隔离和独立的。因此,如果没有一点繁重的设计,就无法在另一个进程中读取内存。

解决方法是将用户窗体的数据保存collection到工作簿并从那里读取。就像在封闭的工作簿中写入和阅读一样。这将作为你的记忆位置。效率不高但可行:) 没有太多汗水。

于 2013-01-08T12:25:10.153 回答