我想更改Outlook 2010日曆中所有項目的時區。For Each to遍歷Outlook日曆項目列表
我很困惑,因爲它們在循環中迭代時如何處理集合中的項目。我的主要背景是用Java編寫的,正如我所瞭解的循環中那樣,一個變量被用作一個虛擬變量,它將依次取得集合中所有項目的值。這種FOR循環通常不需要特殊的賦值。你需要以某種方式手動推進變量,以保持循環進行?
這裏是我的代碼:
Public Sub TZFix()
Dim oAppointmentItem As Outlook.AppointmentItem
Dim tzs As Outlook.TimeZones
Dim tzCentral As Outlook.TimeZone
Dim oAppointments As Object
Dim oNS As Outlook.NameSpace
Set oNS = oOutlook.GetNamespace("MAPI")
Set oAppointments = oNS.GetDefaultFolder(olFolderCalendar)
Set tzs = Application.TimeZones
Set tzCentral = tzs("Central Standard Time")
For Each oAppointmentItem In oAppointments.Items
Set oAppointmentItem.StartTimeZone = tzCentral
Set oAppointmentItem.EndTimeZone = tzCentral
Next
End Sub
我認爲,與循環中變量賦值的問題,因爲我每當我運行它得到一個Error 91: Object Variable or With block variable not set
錯誤。
刪除線'昏暗oOutlook作爲Outlook.Application'和改線'設置ONS = oOutlook.GetNamespace( 「MAPI」)''來設置ONS = Outlook.GetNamespace( 「MAPI」 )',它會很好地工作。 –
@SiddharthRout:我剛剛嘗試過您的解決方案,但不幸的是我仍然收到相同的錯誤。我正在繼續研究這個問題,請讓我知道你是否碰巧找到別的東西。謝謝! – flyingscotsman74656