【发布时间】:2020-05-06 17:59:26
【问题描述】:
我是 Outlook 中 VBA 编程的新手。
我正在编写一个宏,它通过检查主题、发件人、正文等标准来扫描收件箱并将电子邮件移动到特定文件夹。
现在的问题是,当我循环浏览邮箱并收到新电子邮件时,循环中断。
我想到的第一个可能的解决方案是在宏运行时禁用电子邮件同步。 我对此进行了进一步研究,并在 Outlook VBA 中使用 Sync.Start 和 Sync.Stop 方法找到了同步对象。
docs Microsoft - SyncObject.Start method
所以我声明了链接中的所有变量并尝试了代码。一切似乎都没有错误地执行,I loop through all the sync objects and stop them 但是我注意到电子邮件无论如何都会进入我的收件箱。
Public Sub Sync()
Dim nsp As Outlook.NameSpace
Dim sycs As Outlook.SyncObjects
Dim syc As Outlook.SyncObject
Dim i As Integer
Set nsp = Application.GetNamespace("MAPI")
Set sycs = nsp.SyncObjects
For i = 1 To sycs.Count
Set syc = sycs.Item(i)
syc.Stop
Next
End Sub
非常感谢任何如何使这项工作的想法或如何克服这个问题的其他想法。谢谢
[EDIT 1, 07.05.2020, 20:29] 感谢你们的 cmets 伙计们,我刚刚有了另一个想法。我可以创建一个临时文件夹,将所有满足我条件的电子邮件从收件箱移到这个临时文件夹中,然后将这些电子邮件从那个临时文件夹中分类到其他文件夹中。 这应该可行,因为与收件箱不同,临时文件夹不会有新电子邮件!
【问题讨论】: