【发布时间】:2017-06-13 08:46:30
【问题描述】:
正如本文Excel VBA for searching in mails of Outlook 所引用的,我稍微更改了代码以将所有电子邮件重新发送给“已发送邮件”文件夹中的同一收件人。
Function ReplyEmail()
Dim olMail
Dim olMails
Set olApp = CreateObject("Outlook.Application")
Set olNs = olApp.GetNamespace("MAPI")
Set olFldr = olNs.GetDefaultFolder(olFolderSentMail)
Set olMails = olFldr.Items
For Each olMail In olMails
olMail.ReplyAll
olMail.Importance = 2
olMail.Subject = "RE: 2ND " & olMail.Subject
olMail.Send
Next olMail
End Function
但是,由于某些奇怪的原因,此功能仅发送指定文件夹中所有电子邮件的 一半。如果有 9 封电子邮件,该函数会发出 5 封(剩下 4 封),然后如果我运行另一个迭代,该函数会发出 2 封,依此类推......
如果我将olMail.Send 更改为olMail.Display,则该函数会在弹出框中显示所有电子邮件。
有没有人遇到过这个问题或者知道是什么原因?
谢谢。
【问题讨论】:
-
也许您可以遍历 olmails 中电子邮件主题的名称,以查看其持有的内容
-
我将
olMail.Send替换为MsgBox (olMail.To)并显示所有电子邮件。但是,只有当olMail.Send行出现时才会出现此问题。如果我添加MsgBox (olMail.To)之前olMail.Send,那么只有**一半的**显示所有电子邮件的收件人。