我设法使用这个站点让代码在我的个人邮箱上工作。
当应用于共享邮箱时,它不起作用。
它适用于个人邮箱从收件箱移动到名为Test的收件箱子文件夹。
在共享邮箱上,我需要从共享邮箱收件箱移到另一个名为Complete的文件夹。这是共享邮箱中的一个文件夹,不是子文件夹。
Sub MailmoveAP()
Dim olApp As Outlook.Application
Dim objNS As Outlook.NameSpace
Dim olFolder As Outlook.MAPIFolder
Dim msg As Outlook.MailItem
Dim InboxItem As Object
Set olApp = Outlook.Application
Set objNS = olApp.GetNamespace("MAPI")
Set olFolder = objNS.GetSharedDefaultFolder(olFolderInbox)
Set olFolder = olFolder.Folders("Test")
For Each msg In ActiveExplorer.Selection
msg.Move olFolder
Next
End Sub发布于 2022-06-02 20:49:58
NameSpace.GetSharedDefaultFolder方法需要两个参数,而不是一个像GetDefaultFolder那样的参数。此方法用于委托方案,其中一个用户为其一个或多个默认文件夹(例如,共享收件箱文件夹)向另一个用户委派了访问权限。例如:
Sub ResolveName()
Dim myNamespace As Outlook.NameSpace
Dim myRecipient As Outlook.Recipient
Dim CalendarFolder As Outlook.Folder
Set myNamespace = Application.GetNamespace("MAPI")
Set myRecipient = myNamespace.CreateRecipient("Eugene Astafiev")
myRecipient.Resolve
If myRecipient.Resolved Then
Call ShowCalendar(myNamespace, myRecipient)
End If
End Sub
Sub ShowCalendar(myNamespace, myRecipient)
Dim CalendarFolder As Outlook.Folder
Set CalendarFolder = myNamespace.GetSharedDefaultFolder(myRecipient, olFolderCalendar)
CalendarFolder.Display
End Sub要获取Complete文件夹,如果它位于与Inbox相同的级别,您可以使用收件箱文件夹的Parent对象,然后获取一个子文件夹。查看如何在Outlook中枚举文件夹并找到所需的。
https://stackoverflow.com/questions/72465461
复制相似问题