这里足够简单:
设置navFol = navGroup.NavigationFolders.Add(cal)
这适用于任何本地日历,但如果" cal"它会立即崩溃Outlook。是共享日历。有人知道在导航文件夹之间移动共享日历的解决方法吗?我对VBA很陌生,只是为了得到一个宏来为我做一个简单的事情 - 或者至少是一些非常简单的东西,如果不是为了这个。
我怀疑这很重要,但为了以防万一," cal"通过迭代一个EntryID列表来设置for循环:
设置cal = Application.GetNamespace(" MAPI")。GetFolderFromID(str)
并不是变量分配在那里失败(这就是上述行应该无关紧要的原因)。我可以对日历做任何其他事情,无论它是否共享:读取名称,从中获取约会等等.Outlook显然不喜欢使用共享日历作为NavigationFolders.Add()的参数。
编辑:我正在谈论通过分享邀请分享的非默认日历。 GetDefaultSharedFolder等不是我想要的。
答案 0 :(得分:0)
尝试使用Namespace类的GetSharedDefaultFolder方法来获取共享文件夹。
Sub ResolveName()
Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Dim CalendarFolder As Outlook.Folder
Set myNamespace = Application.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev")
myRecipient.Resolve
If myRecipient.Resolved Then
Call ShowCalendar(myNamespace, myRecipient)
End If
End Sub
Sub ShowCalendar(myNamespace, myRecipient)
Dim CalendarFolder As Outlook.Folder
Set CalendarFolder = _
myNamespace.GetSharedDefaultFolder _
(myRecipient, olFolderCalendar)
CalendarFolder.Display
End Sub
NavigationFolders类的Add方法将指定的Folder作为NavigationFolder对象添加到NavigationFolders集合的末尾。