【问题标题】:Count Followup Emails using Excel VBA使用 Excel VBA 计算后续电子邮件
【发布时间】:2014-09-18 21:23:10
【问题描述】:

我正在使用 Office 2013,我正在尝试获取我的一个电子邮件文件夹中的后续项目的计数,此值将写入一个单元格。

所以我在添加 Outlook 对象库引用后使用以下代码:

Dim Folder As Outlook.MAPIFolder

Dim objOL As Outlook.Application
Set objOL = New Outlook.Application

MailboxName = "mymailboxhere"
Main_Folder_Name = "Inbox"
Sub_Folder_Name = "Test"

Set Folder = Outlook.Session.Folders(MailBoxName).Folders(Main_Folder_Name).Folders(Sub_Folder_Name)

Dim itms As Outlook.Items
Set itms = Folder.Items

Dim FollowupItms As Outlook.Items
Set FollowupItms = itms.Restrict("[FlagStatus] = 2")

Followup = FollowupItms.Count
Worksheets("Sheet1").Range("A1").Value = Followup

出于某种原因,即使至少有一封电子邮件被标记为跟进,我的跟进计数仍为 0

为了测试,我尝试了以下方法:

For Each Msg In itms
MsgBox Msg.FlagStatus
Next

其中一封邮件的 Flagstatus 为 2,测试期间在 Msgbox 中显示相同。

在计算未标记的电子邮件或标记为已完成的电子邮件时,该代码可以正常工作。

这对我来说完全没有意义。有什么想法吗?

【问题讨论】:

  • 这很奇怪,但我发现了这种不同的处理方式jpsoftwaretech.com/searchbox-week-day-2,可能会有所帮助
  • @mrbungle 我想在您发布的链接中使用该方法,即对于每个 msg if flagstatus = 2 then ......但我有点希望弄清楚为什么我的代码是不工作。

标签: excel vba outlook


【解决方案1】:

MSDN 说 OlFlagStatus 枚举:

... 已弃用,不打算在您的代码中使用。

(详见http://msdn.microsoft.com/en-us/library/microsoft.office.interop.outlook.olflagstatus(v=office.14).aspx

请尝试使用MailItem.FlagRequest 属性。例如

Set FollowupItms = itms.Restrict("[FlagRequest] = 'Follow up'")

您可以在 MSDN 上找到有关 MailItem.FlagRequest 属性的信息,网址为 http://msdn.microsoft.com/en-us/library/office/ff861323(v=office.14).aspx.

【讨论】:

  • 我现在正在测试它,但看起来使用 FlagRequest 确实解决了问题:)
  • 一个问题,虽然使用 FlagRequest 作为跟进,跟进和已完成的项目都被计算在内,有没有办法区分这两者,因为我只想限制标记为跟进的邮件。
  • 好的,我想通了:itms.Restrict("[FlagRequest] = 'Follow up' AND [FlagStatus] <> 1") 或更简单的itms.Restrict("[FlagStatus] > 1") 两者都在工作!
  • 不过,此 FlagStatus 已被弃用。此外,它是错误的:当用作过滤器时,正如您已经注意到的那样,将它与例如olFlagMarked(转换为整数值 2)将失败。 1 只是一个丑陋的解决方法。通过反复试验,我发现,当在过滤器中使用时,olFlagMarked 出于某种原因映射到值 8。同样,由于已弃用,最好不要使用它。我发现您还可以使用 TaskCompletedDate 属性,如果尚未完成,该属性的日期值为 #1/1/4501#(请参阅linkhere)。
  • 抱歉,固定链接:见here
猜你喜欢
  • 1970-01-01
  • 2023-01-30
  • 1970-01-01
  • 1970-01-01
  • 2016-02-17
  • 2021-01-10
  • 1970-01-01
  • 2021-11-22
  • 2022-01-03
相关资源
最近更新 更多