远程服务器机器不可用错误“462”

时间:2021-07-28 03:03:28

标签: excel vba email outlook

我有一个 excel 用户表单的屏幕截图,我想将其包含在 Outlook 电子邮件中。它在我的主编程计算机上运行良好,但是当我在其他计算机上运行相同的程序时,出现上述错误。 excel 工作簿在云端,并在各种计算机上从云端(谷歌驱动器)运行。代码是:

Function outlookEmail()
Dim doc As Object, rng As Range
    Application.SendKeys "(%{1068})"
    DoEvents
    'ActiveSheet.Paste
    With CreateObject("Outlook.Application").CreateItem(0)
        .display
        Set doc = .GetInspector.WordEditor
        doc.Range(0, 0).Paste
        .To = sDetail.Cells(myRow, headerDict.item("email"))
        .Subject = "documents for you"
    End With

End Function

错误在设置的文档行上,如果我将其标记出来,错误会移到下一行:doc.range...

1 个答案:

答案 0 :(得分:0)

Outlook 是一个单例。这意味着您不能同时运行应用程序的两个实例。如果 Outlook 应用程序已经在不同的安全上下文下运行,您可能会遇到麻烦。因此,我建议检查 Outlook 是否已经在运行,并确保它在相同的安全上下文下运行,以便您可以访问该实例。

您可以使用 Visual Basic GetObject 函数返回对 Application 对象的引用,该对象表示已在运行的会话。请注意,由于在任何给定时间只能运行一个 Outlook 实例,因此 GetObject 在与 Outlook 一起使用时通常没有什么用处。 CreateObject 始终可用于访问 Outlook 的当前实例或创建一个不存在的新实例。但是,您可以通过 GetObject 方法使用错误捕获来确定 Outlook 当前是否正在运行。

Automating Outlook from Other Office Applications 文章中阅读更多相关信息。