首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >VBA访问Outlook共享邮箱中的子文件夹

VBA访问Outlook共享邮箱中的子文件夹
EN

Stack Overflow用户
提问于 2022-03-09 17:58:51
回答 1查看 548关注 0票数 0

在使用VBA从共享Outlook电子邮箱访问子文件夹时,我遇到了问题。此代码的目标是从位于一个名为"Example_Subfolder“的子文件夹中的电子邮件中下载附件。下面的代码导致错误消息;“运行时错误”-2147221233(8004010f):尝试操作失败。找不到对象。

代码语言:javascript
运行
复制
Sub foo()

Dim olApp As Outlook.Application
Dim olNS As Outlook.Namespace
Dim olFolder As Outlook.MAPIFolder
Dim destFolder As Outlook.MAPIFolder
Dim srcFolder As Outlook.MAPIFolder
Dim olItem As Object
Dim subFolder As Object
Dim mailitem As Outlook.mailitem
Dim olAtt As Outlook.Attachment
Dim objOwner As Outlook.Recipient


Set olApp = New Outlook.Application
Set olNS = olApp.GetNamespace("MAPI")

'set object to shared email inbox
Set objOwner = olNS.CreateRecipient("Shared_Mailbox@companyname.com")
objOwner.Resolve

'check object resolved
If Not objOwner.Resolved Then
    Debug.Print objOwner.Name
    MsgBox "Failed to connect to shared email. Contact XXX."
End If


Set olFolder = olNS.GetSharedDefaultFolder(objOwner, olFolderInbox)
'error on next line.
Set subFolder = olFolder.Folders("Example_Subfolder")


'download email attachments
'etc
'etc
End Sub

我唯一能够访问"Example_Subfolder“内部电子邮件的方法是使用Set subFolder = olNS.PickFolder。我不愿在宏中使用此方法。有人能为我指出为什么我的代码不起作用的正确方向吗?

EN

回答 1

Stack Overflow用户

发布于 2022-03-11 01:42:11

如果文件夹在导航窗格中可见,则有另一种选择。

代码语言:javascript
运行
复制
Sub foo()

Dim olNS As namespace
Dim olMailbox As Folder
Dim olInbox As Folder
Dim subFolder As Folder

Set olNS = GetNamespace("MAPI")

' If the folder is in the navigation pane
Set olMailbox = olNS.Folders("Shared_Mailbox@companyname.com")
Set olInbox = olMailbox.Folders("Inbox")
Set subFolder = olInbox.Folders("Example_Subfolder")
subFolder.Display

End Sub
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71413953

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档