我自己和一位同事都可以访问我们称之为“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 不会造成任何差异。我在检查了有关如何设置共享访问的微软文档后添加了登录行,但这并没有解决问题。有没有人有过这方面的经验/知道如何解决?
尝试在有问题的计算机上重新创建邮件配置文件。如果这没有帮助,请按照异常消息中给出的说明进行操作:
注册表或安装问题,重新启动outlook并重试。如果问题仍然存在,请重新安装