【问题标题】:NavigationFolders.add() crashes Outlook for shared calendars?NavigationFolders.add() 使共享日历的 Outlook 崩溃?
【发布时间】:2020-06-26 15:36:17
【问题描述】:

这里足够简单的行:

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

这适用于任何本地日历,但如果“cal”是共享日历,它会立即使 Outlook 崩溃。有人知道在导航文件夹之间移动共享日历的解决方法吗?我对 VBA 很陌生,只是想办法让一个宏为我做一些简单的事情——或者至少是一些如果不是为了这个而应该很简单的事情。

我怀疑这很重要,但以防万一,“cal”通过遍历 EntryID 列表来设置在 for 循环中,如下所示:

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

这不是变量赋值在那里失败(这就是为什么上面的行应该是无关紧要的)。无论是否共享日历,我都可以对日历执行任何其他操作:读取名称、从中获取约会等。Outlook 显然不喜欢使用共享日历作为 NavigationFolders.Add() 的参数。

编辑:我说的是通过共享邀请共享的非默认日历。 GetDefaultSharedFolder 之类的不是我想要的。

【问题讨论】:

    标签: vba outlook outlook-2013


    【解决方案1】:

    尝试使用命名空间类的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 方法将指定的文件夹作为 NavigationFolder 对象添加到 NavigationFolders 集合的末尾。

    【讨论】:

    • 不过,我不是在寻找默认文件夹。我说的是通过共享邀请共享的非默认日历。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-05
    • 1970-01-01
    相关资源
    最近更新 更多