为何GetObject方法调用失败?VSTO与VBA场景异常排查
问题:通过GetObject获取MSProject.Application对象后无法正常调用属性/方法
我在Visual Studio中开发了一款VSTO应用,一直使用以下代码获取Microsoft Project的应用对象:
using MSP = Microsoft.Office.Interop.MSProject; using VB = Microsoft.VisualBasic; if (IsMSProjectIsOpen()) { pApp = (MSP.Application)VB.Interaction.GetObject(Class: "MSProject.Application"); } else { pApp = CreateMSProjectApp(); }
这段代码长期运行正常,但近日在某用户的电脑上出现调用失败的情况。为排查问题,我在该电脑上通过Microsoft Project的VBA编辑器测试GetObject方法:
Sub Test() Dim app As MSProject.Application Set app = GetObject(Class:"MSProject.Application") End Sub
正常情况下,执行上述VBA代码后,本地窗口能显示app对象的完整变量列表:
但在出现问题的电脑上,执行相同代码后,app对象虽非空,但展开本地窗口显示No Variables:
当尝试访问该对象的属性或方法时,会抛出错误:
请问这是什么原因?
内容的提问来源于stack exchange,提问作者Kenny Arnold
相关产品推荐
相关产品推荐

