VBA:Outlook日历 - 省略单个(已删除)重复活动

时间:2015-05-22 17:20:20

标签: vba outlook outlook-vba recurring

继续另一个问题: VBA:阅读展望日历 - 不读经常性约会?

在outlook日历中,我正在阅读/解析/排序工作周以创建摘要。我之前的问题是没有读取定期约会 - 现在排序了。

现在 - 如果在工作周期间我删除了一个定期事件,比如由于假期,它仍会显示在我的摘要中。我无法找出对象中的任何参数来测试它是否已从本周删除。 建议?

Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")
Set olFolder = olNS.GetDefaultFolder(olFolderCalendar)
Set olColItems = olFolder.Items

sFilter = "[START] >= '" & sDateStart & "' And [End] <= '" & sDateEnd & "'"
Set olColFilteredItems = olColItems.Restrict(sFilter)

For Each oItem In olColFilteredItems
    aImport(iCount, 1) = oItem.Subject
    aImport(iCount, 2) = oItem.Start
    aImport(iCount, 3) = oItem.End
    aImport(iCount, 4) = oItem.Location
Next oItem    

亲切的问候, 最大

3 个答案:

答案 0 :(得分:1)

您需要设置IncludeRecurrences property。而不是使用Restrict,Sort by Start属性并将IncludeRecurrences属性设置为true。

答案 1 :(得分:0)

Dmitry是对的,要从符合预定义条件的文件夹中检索所有Outlook约会项目,您需要按升序sort项目并将IncludeRecurrences设置为true。如果在使用Restrict方法之前不这样做,则不会捕获周期性约会!

有关详细信息,请参阅How To: Use Restrict method in Outlook to get calendar items(包含示例代码)。

答案 2 :(得分:0)

哈。非常感谢。在迷雾消亡之前,我重新阅读了德米特里的评论10次。以上链接确实也有帮助。这就是全部:

Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")
Set olFolder = olNS.GetDefaultFolder(olFolderCalendar)
Set olColItems = olFolder.Items

olColItems.IncludeRecurrences = True    '<-- these two lines here fix my issue
olColItems.Sort ("[Start]")             '<--

sFilter = "[START] >= '" & sDateStart & "' And [End] <= '" & sDateEnd & "'"
Set olColFilteredItems = olColItems.Restrict(sFilter)

For Each oItem In olColFilteredItems
    aImport(iCount, 1) = oItem.Subject
    aImport(iCount, 2) = oItem.Start
    aImport(iCount, 3) = oItem.End
    aImport(iCount, 4) = oItem.Location
Next oItem