从Excel宏打开特定的Outlook文件夹

从Excel宏打开特定的Outlook文件夹,excel,vba,outlook,directory,Excel,Vba,Outlook,Directory,我在Excel中有一个宏,允许我选择主收件箱的outlook文件夹收件箱。但是,我想修改它,以便能够选择我的收件箱中的任何特定文件夹(或子文件夹)。例如,我想修改我的宏,以便当我运行它时,它在屏幕截图上选择子文件夹“ALD”。如果有人知道怎么做,那就太好了 此外,我的outlook中还有另一封电子邮件,其中包含许多文件夹和子文件夹(随附的屏幕截图上的一封对应于我的主电子邮件,另一封电子邮件不显示在随附的屏幕截图上),我希望能够修改我的宏,以便选择此其他邮件的任何特定文件夹或子文件夹。比如说,我的

我在Excel中有一个宏,允许我选择主收件箱的outlook文件夹收件箱。但是,我想修改它,以便能够选择我的收件箱中的任何特定文件夹(或子文件夹)。例如,我想修改我的宏,以便当我运行它时,它在屏幕截图上选择子文件夹“ALD”。如果有人知道怎么做,那就太好了

此外,我的outlook中还有另一封电子邮件,其中包含许多文件夹和子文件夹(随附的屏幕截图上的一封对应于我的主电子邮件,另一封电子邮件不显示在随附的屏幕截图上),我希望能够修改我的宏,以便选择此其他邮件的任何特定文件夹或子文件夹。比如说,我的outlook中还有一封电子邮件,名为xxxx@yyyy.com在一个名为“aaaa”的文件夹和一个名为“bbbb”的子文件夹中,我应该如何修改我的宏,以便在运行它时,它选择我的子文件夹“bbbb”? 请在下面找到我的宏代码。 提前谢谢

Sub OpenOutlookFolder()
Dim xOutlookApp As Outlook.Application
Dim xNameSpace As Outlook.Namespace
Dim xFolder As Outlook.Folder
Dim xFolderType As OlDefaultFolders
On Error Resume Next

Set xOutlookApp = New Outlook.Application
Set xNameSpace = xOutlookApp.Session
Set xFolder = xNameSpace.GetDefaultFolder(olFolderInbox
xFolder.Display
Set xFolder = Nothing
Set xNameSpace = Nothing
Set xOutlookApp = Nothing
Exit Sub
End Sub

大致如下:

Dim ThisNamespace As Outlook.NameSpace: Set ThisNamespace = Application.GetNamespace("MAPI")
Dim Inbox As Outlook.MAPIFolder: Set Inbox = ThisNamespace.GetDefaultFolder(olFolderInbox)

Dim BaseFolder As Outlook.MAPIFolder: Set BaseFolder = Inbox '.Folders("SubFolder1\SubFolder2...")
对于直接子文件夹访问,请取消最后一行中的注释并更新路径


如果您想创建一个可搜索/可编辑的文件夹结构,那么我对这个问题的回答可能会很有意思:

最后,通过再次选中“获取对其他收件箱的引用”链接,我成功地修改了我的宏,使其能够正常工作并按我的要求执行。请查找以下代码:

Sub OpenOutlookFolderworks()
Dim xOutlookApp作为Outlook.Application

Dim xNameSpace As Outlook.Namespace
Dim xFolder As Outlook.Folder
 Dim vRecipient As Outlook.MAPIFolder
 Dim xFolderType As OlDefaultFolders
On Error Resume Next
Set xOutlookApp = New Outlook.Application
Set xNameSpace = xOutlookApp.Session
Set xFolder = xNameSpace.GetDefaultFolder(olFolderInbox)
Set xFolder = xFolder.Folders("payment office")
Set xFolder = xFolder.Folders("JIRA")
xFolder.display
Set xFolder = Nothing
Set xNameSpace = Nothing
Exit Sub
End Sub

没有经过验证的答案,但它会帮助您。请参阅Vityaya的答案。非常感谢大家的回答!不幸的是,它不起作用,我的意思是我没有设法修改我的宏,以使它执行我想要的,我尝试了所有的解决方案在主题“获取参考到其他收件箱”。。。即使我有很好的VBA知识,我也不是一个开发人员,所以我很难准确地看到为了使我的宏按我所希望的方式运行,我必须进行哪些修改。。无论如何,它给了我一些想法…不正确的建议重复。看这里