在使用VBA从共享Outlook电子邮箱访问子文件夹时,我遇到了问题。此代码的目标是从位于一个名为"Example_Subfolder“的子文件夹中的电子邮件中下载附件。下面的代码导致错误消息;“运行时错误”-2147221233(8004010f):尝试操作失败。找不到对象。。
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
。我不愿在宏中使用此方法。有人能为我指出为什么我的代码不起作用的正确方向吗?
发布于 2022-03-11 01:42:11
如果文件夹在导航窗格中可见,则有另一种选择。
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
https://stackoverflow.com/questions/71413953
复制相似问题