Excel Outlook使用GetSharedDefaultFolder Automation在SharedMailbox中选择子文件夹时出错

Excel Outlook使用GetSharedDefaultFolder Automation在SharedMailbox中选择子文件夹时出错,excel,vba,outlook,Excel,Vba,Outlook,以下代码用于计算特定SharedMailbox或其子文件夹中的电子邮件数 在SharedMailbox中选择子文件夹时遇到问题。 我已经阅读了GetSharedDefaultFolder上的许多资源,包括 然而,我们仍在努力将其正确地组合在一起。 如果你能帮上忙,那就太好了 我在运行代码时遇到以下错误 运行时错误“-2147221233(80040010f)”自动错误 我希望msgbox将返回子文件夹名称,但它报告了错误 运行时错误“-2147221233(80040010f)”自动错误 我不知

以下代码用于计算特定
SharedMailbox
或其
子文件夹中的电子邮件数

在SharedMailbox中选择子文件夹时遇到问题。 我已经阅读了GetSharedDefaultFolder上的许多资源,包括

然而,我们仍在努力将其正确地组合在一起。 如果你能帮上忙,那就太好了

我在运行代码时遇到以下错误

运行时错误“-2147221233(80040010f)”自动错误

我希望msgbox将返回子文件夹名称,但它报告了错误

运行时错误“-2147221233(80040010f)”自动错误

我不知道为什么。任何人都可以提供帮助。

尝试使用收件人电子邮件地址,如果收件人姓名,则尝试根据通讯簿删除收件人



当然,在访问共享文件夹之前,必须根据通讯簿解析收件人的姓名或地址

    Set olApp = New Outlook.Application
    Set olNs = olApp.GetNamespace("MAPI")    
    Set olShareName = olNs.CreateRecipient("Shared_MailBox")
    olShareName.Resolve
    If Recip.Resolved Then
       Set olFldr = olNs.GetSharedDefaultFolder(olShareName, olFolderInbox)
       ...
    End If
但访问子文件夹时出现问题的原因不同

首先,尝试取消选中Exchange帐户属性对话框的“高级”选项卡上选中的“下载共享文件夹”
复选框。有关更多信息,请参阅本文

第二,请看这篇文章。您为电脑上的
CacheOthersMail
键设置了什么值


有关更多信息,请参阅

您希望MsgBox(MyFolder1)返回什么?首先,语法不正确,应该是
MsgBox MyFolder1
其次
MyFolder1
定义为
Outlook.MAPIFolder
对象,因此您应该指定要在消息框中输出的MAPIFolder属性。
MsgBox
函数正在等待
String
而不是
MAPIFolder
。我希望MsgBox返回子文件夹名称,它可以返回名称,因为MsgBox(olFldr)返回“收件箱”。谢谢Eugene,我尝试了以下操作:a)未选中从“高级”选项卡下载共享文件夹。B) 我正在使用outlook 2013,并在我的电脑上创建了CacheOthersMail key=0。C)我也重新启动了电脑,但问题仍然存在……是的,它应该是收件人地址,但这不是我的查询。不幸的是,否,我已将recip.resolve添加到我的代码中,但它不起作用。我相信问题就在这一行:设置MyFolder1=olFldr.Folders(“Sub_Folder”),根据我的帖子报告运行时错误。@lyricZZ-on-MsgBox(olFldr)这是否为您提供了正确的文件夹名称?
Set MyFolder1 = olFldr.Folders("Sub_Folder")
MsgBox (MyFolder1)
Option Explicit
Public Sub Example()
    Dim olApp As Outlook.Application
    Set olApp = CreateObject("Outlook.Application")

    Dim olNs As Outlook.Namespace
    Set olNs = olApp.GetNamespace("MAPI")

    Dim Recip As Outlook.Recipient
    Dim Inbox As Outlook.MAPIFolder

    Set Recip = olNs.CreateRecipient("0m3r@Email.com")
    Recip.Resolve

    If Recip.Resolved Then
        Set Inbox = olNs.GetSharedDefaultFolder _
                            (Recip, olFolderInbox)
    End If        

    Inbox.Display

End Sub
    Set olApp = New Outlook.Application
    Set olNs = olApp.GetNamespace("MAPI")    
    Set olShareName = olNs.CreateRecipient("Shared_MailBox")
    olShareName.Resolve
    If Recip.Resolved Then
       Set olFldr = olNs.GetSharedDefaultFolder(olShareName, olFolderInbox)
       ...
    End If