如何在Outlook中将多个文件夹/子文件夹中的邮件导出到Excel?
如果依靠手动方法或有限的Outlook功能,从多个文件夹或子文件夹导出邮件到Excel可能是一项繁琐的任务。幸运的是,有更高效的方法来实现这一点。本文中,我们将探讨两种方法:一种基于VBA的方法,以及一种使用Kutools for Outlook更快、更友好的解决方案。虽然VBA方法提供了灵活性,但它需要复杂的设置和调整。相比之下,Kutools for Outlook提供了一种简单而强大的方式,只需点击几下即可将邮件导出到Excel,为您节省时间和精力。让我们深入了解细节。
使用VBA将多个文件夹/子文件夹中的邮件导出到Excel (复杂但灵活)
使用Kutools for Outlook将文件夹/子文件夹中的邮件导出到Excel 👍(高效且易用)
使用VBA将多个文件夹/子文件夹中的邮件导出到Excel
如果您熟悉编码并需要一个可定制的解决方案,使用VBA可能会很有效。这种方法允许您指定多个文件夹或子文件夹,并将其邮件导出到单独的Excel文件中。然而,它需要技术知识并对代码进行仔细定制。
步骤1:打开VBA编辑器
按Alt + F11启动“Microsoft Visual Basic for Applications”窗口。
步骤2:插入新模块
点击“插入”>“模块”,然后将下面的VBA代码粘贴到新的模块窗口中。
VBA:从多个文件夹和子文件夹导出邮件到Excel
Const MACRO_NAME = "Export Outlook Folders to Excel"
Sub ExportMain()
ExportToExcel "destination_folder_path\A.xlsx", "your_email_account\folder\subfolder_1"
ExportToExcel "destination_folder_path\B.xlsx", "your_email_account\folder\subfolder_2"
MsgBox "Process complete.", vbInformation + vbOKOnly, MACRO_NAME
End Sub
Sub ExportToExcel(strFilename As String, strFolderPath As String)
Dim olkMsg As Object
Dim olkFld As Object
Dim excApp As Object
Dim excWkb As Object
Dim excWks As Object
Dim intRow As Integer
Dim intVersion As Integer
If strFilename <> "" Then
If strFolderPath <> "" Then
Set olkFld = OpenOutlookFolder(strFolderPath)
If TypeName(olkFld) <> "Nothing" Then
intVersion = GetOutlookVersion()
Set excApp = CreateObject("Excel.Application")
Set excWkb = excApp.Workbooks.Add()
Set excWks = excWkb.ActiveSheet
With excWks
.Cells(1, 1) = "Subject"
.Cells(1, 2) = "Received"
.Cells(1, 3) = "Sender"
End With
intRow = 2
For Each olkMsg In olkFld.Items
If olkMsg.Class = olMail Then
excWks.Cells(intRow, 1) = olkMsg.Subject
excWks.Cells(intRow, 2) = olkMsg.ReceivedTime
excWks.Cells(intRow, 3) = GetSMTPAddress(olkMsg, intVersion)
intRow = intRow + 1
End If
Next
Set olkMsg = Nothing
excWkb.SaveAs strFilename
excWkb.Close
Else
MsgBox "The folder '" & strFolderPath & "' does not exist in Outlook.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The folder path was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Else
MsgBox "The filename was empty.", vbCritical + vbOKOnly, MACRO_NAME
End If
Set olkMsg = Nothing
Set olkFld = Nothing
Set excWks = Nothing
Set excWkb = Nothing
Set excApp = Nothing
End Sub
Public Function OpenOutlookFolder(strFolderPath As String) As Outlook.MAPIFolder
Dim arrFolders As Variant
Dim varFolder As Variant
Dim bolBeyondRoot As Boolean
On Error Resume Next
If strFolderPath = "" Then
Set OpenOutlookFolder = Nothing
Else
Do While Left(strFolderPath, 1) = "\"
strFolderPath = Right(strFolderPath, Len(strFolderPath) - 1)
Loop
arrFolders = Split(strFolderPath, "\")
For Each varFolder In arrFolders
Select Case bolBeyondRoot
Case False
Set OpenOutlookFolder = Outlook.Session.Folders(varFolder)
bolBeyondRoot = True
Case True
Set OpenOutlookFolder = OpenOutlookFolder.Folders(varFolder)
End Select
If Err.Number <> 0 Then
Set OpenOutlookFolder = Nothing
Exit For
End If
Next
End If
On Error GoTo 0
End Function
Function GetSMTPAddress(Item As Outlook.MailItem, intOutlookVersion As Integer) As String
Dim olkSnd As Outlook.AddressEntry
Dim olkEnt As Object
On Error Resume Next
Select Case intOutlookVersion
Case Is < 14
If Item.SenderEmailType = "EX" Then
GetSMTPAddress = SMTPEX(Item)
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
Case Else
Set olkSnd = Item.Sender
If olkSnd.AddressEntryUserType = olExchangeUserAddressEntry Then
Set olkEnt = olkSnd.GetExchangeUser
GetSMTPAddress = olkEnt.PrimarySmtpAddress
Else
GetSMTPAddress = Item.SenderEmailAddress
End If
End Select
On Error GoTo 0
Set olkSnd = Nothing
Set olkEnt = Nothing
End Function
Function GetOutlookVersion() As Integer
Dim arrVer As Variant
arrVer = Split(Outlook.Version, ".")
GetOutlookVersion = arrVer(0)
End Function
Function SMTPEX(olkMsg As Outlook.MailItem) As String
Dim olkPA As Outlook.propertyAccessor
On Error Resume Next
Set olkPA = olkMsg.propertyAccessor
SMTPEX = olkPA.GetProperty("http://schemas.microsoft.com/mapi/proptag/0x5D01001E")
On Error GoTo 0
Set olkPA = Nothing
End Function
步骤3:自定义VBA代码
- 将上述代码中的“destination_folder_path”替换为实际的文件夹路径,例如“C:\Users\DT168\Documents\TEST”。
- 替换“your_email_account\folder\subfolder_1”和“your_email_account\folder\subfolder_2”为您Outlook中的文件夹路径,例如“Kelly@extendoffice.com\收件箱\A”和“Kelly@extendoffice.com\收件箱\B".
步骤4:运行代码
按“F5”或点击“运行”按钮执行代码。然后在弹出的“将Outlook文件夹导出到Excel”对话框中点击“确定”按钮。现在所有指定文件夹/子文件夹中的邮件都已导出到Excel工作簿中。
缺点:
- 复杂设置:需要仔细调整代码并具备VBA的工作知识。
- 容易出错:在定制过程中稍有错误可能导致错误或不完整的导出。
- 耗时:不适合快速或频繁导出。
通过批量处理彻底改变您的邮件管理!
厌倦了重复的邮件任务? Kutools for Outlook 提供“批量处理”工具来简化您的工作流程并节省宝贵时间。
- 🌟 批量回复多封邮件:使用模板轻松发送批量回复。
- 📧 逐个转发:将多封邮件作为普通消息转发,而不是附件。
- 📝 保存为多种格式:一次性将邮件导出为PDF、Word、Excel等多种格式!

使用Kutools for Outlook将文件夹/子文件夹中的邮件导出到Excel 👍
为了更快捷简便的方法,“Kutools for Outlook”提供了一个“将选中的邮件另存为各种格式的文件”的功能。该方法因其简单、快速和多功能性而备受推荐。无论您是管理少量邮件还是大数据集,Kutools都能以最少的努力确保顺畅的体验。
告别Outlook效率低下的问题!Kutools for Outlook让批量邮件处理更轻松——现在还提供免费的AI功能!立即下载Kutools for Outlook!!
步骤1:选择文件夹或子文件夹
导航到包含要导出邮件的文件夹或子文件夹。按Ctrl + A选择列表中的所有邮件。
步骤2:访问“将选中的邮件另存为各种格式的文件”功能
点击“Kutools”>“批量处理”>“将选中的邮件另存为各种格式的文件”。
步骤3:配置导出设置
- 在“将邮件另存为其他文件”对话框中,选择要保存文件的目标文件夹。
- 选择“Excel格式”选项。
- 在“保存内容”部分中选择要导出的特定邮件内容(例如,邮件头、正文)。
步骤4:完成导出
点击“确定”开始导出过程。完成后,您将在指定文件夹中找到所有保存为单独Excel文件的邮件。
优点:
- 快速直观:只需点击几下即可将邮件导出到Excel,无需技术技能。
- 可定制输出:选择特定的文件格式和内容以满足您的需求。
- 无错误过程:避免与VBA方法相关的复杂性和潜在错误。
- 专业结果:非常适合创建有组织的记录或高效共享数据。
最佳 Office 办公效率工具
最新消息:Kutools for Outlook 推出免费版!
体验全新 Kutools for Outlook,超过100 种强大功能!立即点击下载!
🤖 Kutools AI :采用先进的 AI 技术,轻松处理邮件,包括答复、总结、优化、扩展、翻译和撰写邮件。
📧 邮箱自动化:自动答复(支持 POP 和 IMAP) /计划发送邮件 /发送邮件时按规则自动抄送密送 / 自动转发(高级规则) / 自动添加问候语 / 自动将多收件人的邮件分割为单独邮件 ...
📨 邮件管理:撤回邮件 / 按主题及其他条件阻止欺诈邮件 / 删除重复邮件 / 高级搜索 / 整合文件夹 ...
📁 附件增强:批量保存 / 批量拆离 / 批量压缩 / 自动保存 / 自动拆离 / 自动压缩 ...
🌟 界面魔法:😊更多美观酷炫的表情 /重要邮件到达时提醒 / 最小化 Outlook 而非关闭 ...
👍 一键高效操作:带附件全部答复 / 防钓鱼邮件 / 🕘显示发件人时区 ...
👩🏼🤝👩🏻 联系人与日历:批量添加选中邮件中的联系人 / 分割联系人组为单独的组 / 移除生日提醒 ...
可根据您偏好选择 Kutools 使用语言——支持英语、西班牙语、德语、法语、中文及40 多种其他语言!
只需点击一下即可立即激活 Kutools for Outlook。无需等待,立即下载,提升工作效率!


🚀 一键下载——获取所有 Office 插件
强烈推荐:Kutools for Office(五合一)
一键下载五个安装包:Kutools for Excel、Outlook、Word、PowerPoint以及 Office Tab Pro。 立即点击下载!
- ✅ 一键便利操作:一次下载全部五个安装包。
- 🚀 随时满足 Office任务需求:需要哪个插件随时安装即可。
- 🧰 包含:Kutools for Excel / Kutools for Outlook / Kutools for Word / Office Tab Pro / Kutools for PowerPoint