【发布时间】:2021-09-07 14:11:06
【问题描述】:
我正在尝试循环浏览当天的特定约会并在 msgbox 中显示他们的详细信息。
我发现了 DASL 过滤器查询。
但是,它只会显示找到的第一个约会。 FindNext 方法永远不会进入下一个约会,即使它来自我在网上找到的一个非常相似的示例。
当我直接在 Outlook 中设置相同的 DASL 过滤器时,它会按预期显示约会。
这是我现在的子:
Sub GetAppointments()
Dim sFilter As String
Dim oExplorer As Outlook.Explorer
Dim oFolder As Outlook.Folder
Dim oAppointment As Outlook.AppointmentItem
sFilter = "@SQL=" & _
"%today(""urn:schemas:calendar:dtstart"")% AND " & _
"%today(""urn:schemas:calendar:dtend"")% AND " & _
"""urn:schemas-microsoft-com:office:office#Keywords"" LIKE '%Meeting%'"
Set oExplorer = Application.ActiveExplorer
Set oFolder = oExplorer.CurrentFolder
Set oAppointment = oFolder.Items.Find(sFilter)
While TypeName(oAppointment) <> "Nothing"
MsgBox oAppointment.Subject & vbCr & _
oAppointment.Start & vbCr & _
oAppointment.End
Set oAppointment = oFolder.Items.FindNext
Wend
End Sub
【问题讨论】: