【问题标题】:the remote server machine is unavailable error '462'远程服务器机器不可用错误“462”
【发布时间】:2021-10-03 19:25:09
【问题描述】:

我有一个 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...

【问题讨论】:

  • 您在何时何地运行 VBA 代码?是在服务器上还是服务应用上?

标签: excel vba email outlook


【解决方案1】:

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

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

Automating Outlook from Other Office Applications 文章中了解更多信息。

【讨论】:

  • 电子表格保存在云端,可能有多个用户同时访问,但每个人都使用自己的桌面
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多