使用 NS.GetSharedDefaultFolder VBA 方法访问共享驱动器时出现运行时错误

问题描述 投票:0回答:1

我自己和一位同事都可以访问我们称之为“mailbot”的共享 Outlook 帐户,我正在编写一个 VBA 宏,用于扫描主收件箱中的电子邮件、提取信息并使用它来填充 Excel 工作表。

以下代码在我的计算机上完美执行

Sub Account_Change()

Dim outlookApp As Outlook.Application
Dim objectNS As Outlook.Namespace
Dim sharedmailbox As Outlook.Recipient

Set outlookApp = Outlook.Application
Set objectNS = outlookApp.GetNamespace("MAPI") 'Object that can access folders/storage
objectNS.Logon

Set sharedmailbox = objectNS.CreateRecipient("[email protected]")

sharedmailbox.Resolve

If sharedmailbox.Resolved Then

    Set objFolder = objectNS.GetSharedDefaultFolder(sharedmailbox, olFolderInbox)
    
    For Each Item In objFolder.Items
        If TypeOf Item Is Outlook.MailItem Then
            Dim oMail As Outlook.MailItem: Set oMail = Item
            body_str = CStr(oMail.Body)
        End If
    Next
End If

但是在我同事的电脑上他收到了错误

运行时错误'-2147221219 (8004011d)':由于注册表或安装问题,操作失败,请重新启动outlook并重试。如果问题仍然存在,请重新安装

这突出了这条线

Set objFolder = objectNS.GetSharedDefaultFolder(sharedmailbox, olFolderInbox)

作为导致错误的原因,重新启动 Outlook 不会造成任何差异。我在检查了有关如何设置共享访问的微软文档后添加了登录行,但这并没有解决问题。有没有人有过这方面的经验/知道如何解决?

vba outlook
1个回答
0
投票

尝试在有问题的计算机上重新创建邮件配置文件。如果这没有帮助,请按照异常消息中给出的说明进行操作:

注册表或安装问题,重新启动outlook并重试。如果问题仍然存在,请重新安装

© www.soinside.com 2019 - 2024. All rights reserved.