[英]How to get outlook appointments via Excel VBA without listingrecurring appointments
[英]How do I get modified recurrences of Outlook appointments in Excel vba?
我正在尝试在 Excel 中编写一个宏,该宏读取我今天的所有日历约会并计算在这些约会中花费的总时间。 我似乎遇到的问题是我的所有约会都是定期约会,并且某些实例的日期或开始时间已被修改。 我的代码正在过滤,但不是我期望的那样,我认为这是因为修改了重复。
如何仅获取今天重复的详细信息?
Dim olApp As Object
Dim olNS As Object
Dim olFolder As Object
Dim olApt As Object
Dim olResults As Object
Dim olItem As Object
Dim NextRow As Long
Dim mydate, sdate, edate As Date
Dim sFilter As String
Dim i As Long
Dim dtEnd As Date
mydate = Date
Set olApp = CreateObject("Outlook.Application")
Set olNS = olApp.GetNamespace("MAPI")
Set olFolder = olNS.GetDefaultFolder(9)
sdate = mydate + 6 / 24
edate = mydate + 17 / 24
sFilter = "[Start] >= '" & Format(sdate, "ddddd h:nn AMPM") & "'" & " AND [Start] < '" & Format(edate, "ddddd h:nn AMPM") & "'"
olFolder.Items.IncludeRecurrences = True
olFolder.Items.Sort ("[Start]")
Set olResults = olFolder.Items.Restrict(sFilter)
Hours = 0
If olResults.Count > 0 Then
For i = 1 To olResults.Count
Set olItem = olResults(i)
Hours = Hours + olItem.Duration / 60
Debug.Print olItem.Start
Next i
End If
您必须在同一个集合上设置属性,避免对Items
属性的任何调用:
Dim folderItems as Outlook.Items
Set folderItems = olFolder.Items
folderItems.IncludeRecurrences = True
folderItems.Sort ("[Start]")
Set olResults = folderItems.Restrict(sFilter)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.