如何使用VBA从特定的Outlook文件夹中获取电子邮件



我正在尝试获取今天从特定文件夹收到的目标电子邮件。我当前的VBA代码是:

Sub ExportOutlookTableToExcel()
Dim oLookInspector As Inspector
Dim oLookMailitem As MailItem
Dim oLookWordDoc As Word.Document
Dim oLookWordTbl As Word.Table
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook 
Dim xlWrkSheet As Excel.Worksheet
Dim Today As String
Today = Date

'Grab Email Item
Set oLookMailitem =Application.ActiveExplorer.CurrentFolder.Items("Apples Sales")
Set oLookInspector = oLookMailitem.GetInspector
Set oLookWordDoc = oLookInspector.WordEditor

然而,我的电子邮件位于名为"的特定文件夹中;苹果";,如果我把它移到收件箱文件夹,它可以使用CurrentFolder方法。有没有办法指定VBA应该在哪个文件夹中获取电子邮件?

假设文件夹是收件箱文件夹上的子文件夹,请尝试

set folder = Application.Session.GetDefaultFolder(olFolderInbox).Folders("Folder Name")

如果它与收件箱处于同一级别,请使用

set folder = Application.Session.GetDEfaultFolder(olFolderInbox).Parent.Folders("Folder Name")

您可以使用显示Pick Folder对话框的NameSpace.PickFolder方法。Pick Folder对话框是一个模式对话框,这意味着在用户选择文件夹或取消对话框之前,代码执行不会继续。该方法返回代表用户在对话框中选择的文件夹的Folder对象,如果用户取消了对话框,则返回Nothing对象。

因此,每次运行VBA宏时,都可以在运行时选择正确的文件夹。否则,您将不得不指定硬编码的文件夹名称。

NameSpace.GetDefaultFolder方法返回一个Folder对象,该对象表示当前配置文件所请求类型的默认文件夹;例如,获取当前登录用户的默认"收件箱or日历"文件夹。

然后,您可以使用Folder.Folders属性,该属性返回代表指定Folder中包含的所有文件夹的Folders集合。所以,你可以找到一个子文件夹。

Set item = Application.GetNamespace("MAPI)".GetDefaultFolder(olFolderInbox).Folders("Apples").Items("Apples Sales")

最新更新