Vba 在特定文件夹中打开电子邮件

Vba 在特定文件夹中打开电子邮件,vba,excel,outlook,Vba,Excel,Outlook,我在访问Outlook中特定文件夹中的电子邮件时遇到问题 当我将电子邮件放入收件箱时,下面的代码行起作用 Set OtlkApp = GetObject(, "Outlook.application") Set ns = OtlkApp.GetNamespace("MAPI") Set fldr = ns.GetDefaultFolder(olFolderInbox) 但是,当我尝试访问名为“tempfiles”的文件夹时,当我尝试使用此代码打开它时,它找不到该对象 Set fldr = ns

我在访问Outlook中特定文件夹中的电子邮件时遇到问题

当我将电子邮件放入收件箱时,下面的代码行起作用

Set OtlkApp = GetObject(, "Outlook.application")
Set ns = OtlkApp.GetNamespace("MAPI")
Set fldr = ns.GetDefaultFolder(olFolderInbox)
但是,当我尝试访问名为“tempfiles”的文件夹时,当我尝试使用此代码打开它时,它找不到该对象

Set fldr = ns.Folders("tempfiles")

语法正确吗?我缺少什么吗?

根据tempfolders的级别(收件箱的同一级别或子文件夹)扩展folders属性:

'INBOX FOLDER
Set inboxfldr = ns.GetDefaultFolder(olFolderInbox)

'TEMPFILES SUBFOLDER
Set tempfilesfldr = inboxfldr.Folders("tempfiles")

'TEMPFILES FOLDER (SAME LEVEL AS DEFAULT FOLDERS -INBOX, CALENDAR, TASKS, ETC.)
Set tempfilesfldr = inboxfldr.Parent.Folders("tempfiles")

据我所知,没有任何简单的分配语句允许您访问randon文件夹。您可能有许多同名文件夹;Outlook将如何知道您想要哪一个。在我的答案的底部有一对宏,它将获取层次结构中的任何文件夹。