【问题标题】:How can the Add.Item event works at Outlook opening?Add.Item 事件如何在 Outlook 打开时起作用?
【发布时间】:2017-04-21 15:36:01
【问题描述】:

我在 Outlook 中执行的宏出现问题。要恢复,宏会在我每次收到电子邮件时启动。然后它会运行其他几个Sub,修改一个Excel文件等等。当 Outlook 正在运行并且我收到一封新电子邮件时,一切正常。当我打开 Outlook 并同时收到多封电子邮件时会出现此问题。

我想宏没有足够的时间来结束它对第一封电子邮件所做的事情,并且已经尝试重新开始下一封电子邮件。

有没有办法让下一封电子邮件暂停,以便为每封电子邮件运行宏,每封邮件都轮到它了?或者您有其他解决方案?

谢谢。

PS:我可以提供代码,但是很长。

【问题讨论】:

  • 您是否调试过它在哪里崩溃?它总是在同一条线上吗?你能发布它崩溃的地方吗
  • 我认为我们需要查看代码并获取有关“问题”的更多信息(它是否出错、是否停止、没有按预期工作)。
  • 阅读MCVE
  • 最好发布非常简短的代码示例。但是,此时查看您拥有的任何代码会很有帮助,有助于理解您要问的问题。要发布长代码示例,请将它们放在 pastebin 或 github 等外部网站上,并在您的问题中包含一个链接。
  • 是的,请发布长代码/完整代码-

标签: vba outlook


【解决方案1】:

当我打开 Outlook 并同时收到多封电子邮件时会出现此问题。

Application 类的NewMailEx 事件每收到一个由 Microsoft Outlook 处理的项目就会触发一次。该项目可以是几种不同的项目类型之一,例如 MailItem、MeetingItem 或 SharingItem。 EntryIDsCollection 字符串包含对应于该项目的条目 ID。

NewMailEx 事件在新邮件到达收件箱时以及在客户端规则处理发生之前触发。您可以使用 EntryIDCollection 数组中返回的 Entry ID 来调用NameSpace.GetItemFromID 方法并处理该项目。

确保在 Outlook 启动时启用并允许 VBA 宏运行。查看 Outlook 中的信任中心设置。

【讨论】:

    猜你喜欢
    • 2017-01-23
    • 1970-01-01
    • 2020-08-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-03
    • 1970-01-01
    • 2016-11-19
    相关资源
    最近更新 更多