如何访问单独的Excel实例的UserForms集合?

时间:2013-01-07 11:31:55

标签: vba excel-vba excel

对于单独的Excel实例,有没有办法获取UserForms集合(对象浏览器表明它是VBA.Global的成员)?我需要检查是否加载了一个表单并且如果不是这样就相应地退出远程应用程序以免留下任何重影进程 - 但我无法找到一种简单的方法来检测它。

我可能会使用一系列复杂的API调用来识别所有UserForm窗口(“ThunderDFrames”),然后识别它们的父进程,然后识别它们的父进程的hWnd,然后检测它是否与Application对象的hWnd匹配已知由托管主持,但只需在UserForms colelction进行测试就可以感觉更优雅。

1 个答案:

答案 0 :(得分:0)

更简单的答案 - 不。 Why?

正如@Daniel指出的那样,不同过程中的每个记忆都是孤立的,彼此独立。因此,如果没有一点沉重的设计,就无法在另一个过程中阅读记忆。

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