继续另一个问题: 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
亲切的问候, 最大
答案 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