NavigationFolders.add()崩溃共享日历的Outlook?

时间:2015-04-08 20:22:39

标签: vba outlook-vba outlook-2013

这里足够简单:

设置navFol = navGroup.NavigationFolders.Add(cal)

这适用于任何本地日历,但如果" cal"它会立即崩溃Outlook。是共享日历。有人知道在导航文件夹之间移动共享日历的解决方法吗?我对VBA很陌生,只是为了得到一个宏来为我做一个简单的事情 - 或者至少是一些非常简单的东西,如果不是为了这个。

我怀疑这很重要,但为了以防万一," cal"通过迭代一个EntryID列表来设置for循环:

设置cal = Application.GetNamespace(" MAPI")。GetFolderFromID(str)

并不是变量分配在那里失败(这就是上述行应该无关紧要的原因)。我可以对日历做任何其他事情,无论它是否共享:读取名称,从中获取约会等等.Outlook显然不喜欢使用共享日历作为NavigationFolders.Add()的参数。

编辑:我正在谈论通过分享邀请分享的非默认日历。 GetDefaultSharedFolder等不是我想要的。

1 个答案:

答案 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集合的末尾。