簡體   English   中英

如何在 Excel vba 中修改 Outlook 約會的重復次數?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM