GetObject(,“Outlook.Application”)不能使用Outlook打开

我在Excel文件中使用下面的代码,可以被多个人访问和使用。 在继续执行其余代码之前,提取程序将检查Outlook是否处于打开状态。

Dim oOutlook As Object 'Checks to see if Outlook is open On Error Resume Next Set oOutlook = GetObject(, "Outlook.Application") On Error GoTo 0 If oOutlook Is Nothing Then MsgBox "Outlook is not open." Exit Sub End If Set oOutlook = Nothing 

该代码似乎除了一个人/电脑以外的每个人都适用。 对于这个人/计算机,即使在Outlook打开的情况下, Set oOutlook = GetObject(, "Outlook.Application")代码行似乎并不认为它是开放的。 我已经检查了通常的事情:确保VBA引用设置正确,安全设置似乎与其他人一样。

任何build议将不胜感激。

以我的经验,我用这个来避免这个问题:

 On Error Resume Next Set oWord = GetObject(, "Word.Application") If Err.Number <> 0 Then Set oWord = CreateObject("Word.Application") End If On Error GoTo 0 

但实际上我不知道这个问题来自哪里…有时只是经过我的路!

在具有UAC的系统上,这两个应用程序应该在相同的安全上下文中运行。 例如,如果其中一个应用程序以pipe理员权限运行,另一个应该以pipe理员权限运行,以访问正在运行的实例。

您可能会发现从另一个程序文章如何自动化Outlook有帮助。

我以前必须这样做,因为第一个getobject失败时出现错误,所以我开始重复它3次或更多次,再也没有问题:

 on error resume next Dim AutoCAD As Object Dim Thisdrawing As Object Dim activedocument As Object Dim acadapplication As Object Dim acadapp As Object Set acadapp = GetObject(, "autocad.application.14") Set acadapp = GetObject(, "autocad.application.15") Set acadapp = GetObject(, "autocad.application.16") Set acadapp = GetObject(, "autocad.application.17") Set acadapp = GetObject(, "autocad.application.18") Set acadapp = GetObject(, "autocad.application.19") Set acadapp = GetObject(, "autocad.application.20") Set acadapp = GetObject(, "autocad.application.21") Set acadapp = GetObject(, "autocad.application.22") Set acadapp = GetObject(, "autocad.application.23") Set acadapp = GetObject(, "autocad.application.24") Set acadapp = GetObject(, "autocad.application.25") Set acadapp = GetObject(, "autocad.application.26") Set acadapp = GetObject(, "autocad.application.27") Set acadapp = GetObject(, "autocad.application.28") Set acadapp = GetObject(, "autocad.application.29") Set acadapp = GetObject(, "autocad.application.30") Set acadapp = GetObject(, "autocad.application") Set acadapp = GetObject(, "autocad.application") Set acadapp = GetObject(, "autocad.application") 

以防万一有更新的版本,我尝试了所有的一次,然后重复通常多次。 再也没有失败过。