Я пытаюсь обновить общий календарь с листа 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 не является ничем, но его невозможно найти.
Снова все это прекрасно работает, когда владелец этого календаря запускает его. Для меня это «Общие календаря», и я получаю ошибки. Он также отлично работает, если я использую тот же код для обновления созданного мной календаря, который находится в разделе «Мои календари».
Это проблема с поиском правильной папки для общего календаря, не так ли? Путь к папке не должен меняться, поэтому я мог бы жестко закодировать его, чтобы он работал для всех, возможно ли это?
Попробуйте установить 'Set olFolder = olNameSpace.GetSharedDefaultFolder (olFldrOwner, olFolderCalendar) .Folders (« Transport Sched »)' дайте мне знать – 0m3r
Когда я попробую, как вы сказали, теперь он терпит неудачу в этой строке, с тем же «объектом не найденным» ' ошибка. На самом деле, как была написана строка, после прочтения другого ответа здесь я разбил ее на две строки, чтобы помочь отлаживать. – jvarnerus