我想從Excel工作表中更新共享日曆。我對這個共享日曆的擁有者的代碼工作正常,但它對我來說失敗了。日曆已分享給我,我擁有完整的所有者權限。無法更新共享的非默認日曆文件夾
我可以手動編輯日曆但不存在任何問題,但想法是任何人都可以從此Excel表中運行宏來更新共享日曆。下面是相關的代碼,只是到故障點:
Sub UpdateSched()
Dim olApp As Outlook.Application
Dim olNameSpace As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim olFldrOwner As Outlook.Recipient
On Error Resume Next
' check if Outlook is running
Set olApp = GetObject("Outlook.Application")
If Err <> 0 Then
'if not running, start it
Set olApp = CreateObject("Outlook.Application")
End If
On Error GoTo 0
Set olNameSpace = olApp.GetNamespace("MAPI")
Set olFldrOwner = olNameSpace.CreateRecipient("ownrAlias")
olFldrOwner.Resolve
Set olFolder = Nothing
If olFldrOwner.Resolved Then
Set olFolder = olNameSpace.GetSharedDefaultFolder(olFldrOwner, olFolderCalendar)
' If olFolder Is Nothing Then
' Debug.Print "Nothing"
' Else
' Debug.Print olFolder.Name '<-Error here if the if-block is run
' End If
'******************************
Set olFolder = olFolder.Folders("Transport Sched") '<-Object Not Found Error
'******************************
End If
'Code below updates appointments on the shared calendar
完整的錯誤是「嘗試的操作失敗。無法找到對象'
爲了測試,我添加了註釋掉的塊。這讓我覺得這個錯誤實際上可能在上一行。當這個塊被取消註釋時,在Else之後的代碼錯誤出現在同一個錯誤上(同樣的錯誤)。所以olFolder對象並不是什麼都沒有,但是它找不到。
再次,當日歷的所有者運行它時,這一切都可以正常工作。它在我的「共享日曆」下,我收到錯誤。如果我使用相同的代碼來更新我創建的日曆,那麼它也可以正常工作,這在「我的日曆」下。
這對於找到共享日曆的正確文件夾有問題,對吧?該文件夾的路徑不應該改變,所以我可以對它進行硬編碼以適合每個人,這是可能的嗎?
試一下這個'設置olFolder = olNameSpace.GetSharedDefaultFolder(olFldrOwner,olFolderCalendar).Folders(「運輸附表」)'讓我知道 – 0m3r
當我嘗試如你所說,現在無法上線,以同樣「沒有找到對象'錯誤。這實際上是這條線的原始寫法,在閱讀另一個答案之後,我已經將它分成兩行來幫助調試。 – jvarnerus