将Outlook 2013search文件夹电子邮件导出到Excel
我想将我的电子邮件在search文件夹导出到Excel 。
我正在使用下面的代码在收件箱中导出我的电子邮件。
但与search文件夹它给了我一个错误:
运行时错误“-2147221233(8004010f)
尝试的操作失败。 一个对象无法find。
Sub Download_Outlook_Mail_To_Excel() Dim folders As Outlook.folders Dim folder As Outlook.MAPIFolder Dim iRow As Integer Dim Pst_Folder_Name Dim MailboxName MailboxName = "xxx@yy.com" Pst_Folder_Name = "Inbox" Set folder = Outlook.Session.folders(MailboxName).folders(Pst_Folder_Name) Sheets(1).Activate For iRow = 1 To folder.Items.Count Sheets(1).Cells(iRow, 1).Select Sheets(1).Cells(iRow, 1) = folder.Items.Item(iRow).SenderName Sheets(1).Cells(iRow, 2) = folder.Items.Item(iRow).Subject Sheets(1).Cells(iRow, 3) = folder.Items.Item(iRow).ReceivedTime Sheets(1).Cells(iRow, 4) = folder.Items.Item(iRow).Categories Next iRow MsgBox "Outlook Mails Extracted to Excel" End Sub
我终于find了解决办法。 它只适用于一个指定的search文件夹,在variables:Pst_Folder_Name中命名。 如果你有更多的search文件夹,你必须以某种方式使用一个循环。
Sub Outlook_Emails_Handled_Last_Week() Dim colStores As Outlook.Stores Dim oStore As Outlook.Store Dim oSearchFolders As Outlook.folders Dim oFolder As Outlook.folder Dim mail As Outlook.MailItem Dim iRow As Integer Dim Pst_Folder_Name Dim MailboxName Dim Ws As Excel.Worksheet Dim LastRow As Integer MailboxName = "xxxx@yyy.com" Pst_Folder_Name = "Emails Handled Last Week" Set oFolder = Session.Stores.Item(MailboxName).GetSearchFolders(Pst_Folder_Name) Set Ws = ThisWorkbook.Worksheets("Sheet1") Ws.Activate LastRow = Ws.Range("A" & Ws.Rows.Count).End(xlUp).Row Ws.Cells(1, 1).Value = "Sender Name" Ws.Cells(1, 2).Value = "Subject" Ws.Cells(1, 3).Value = "Received Time" Ws.Cells(1, 4).Value = "Categories" For iRow = 1 To oFolder.Items.Count Ws.Cells(LastRow + iRow, 1) = oFolder.Items.Item(iRow).SenderName Ws.Cells(LastRow + iRow, 2) = oFolder.Items.Item(iRow).Subject Ws.Cells(LastRow + iRow, 3) = oFolder.Items.Item(iRow).ReceivedTime Ws.Cells(LastRow + iRow, 4) = oFolder.Items.Item(iRow).Categories Next iRow MsgBox "Completed!" End Sub
由于search文件夹可以预先指定或自定义,检测它们的最好方法是检查文件夹的.Class
,这应该是olSearch
。
所以这应该工作(我添加了一个新的Integer来继续写作,如果有多个search文件夹):
Sub Download_Outlook_Mail_To_Excel() Dim folder As Outlook.MAPIFolder Dim iRow As Integer Dim LastWrow As Integer Dim MailboxName As String Dim Ws As Excel.Worksheet MailboxName = "xxyy@zzz.com" Set Ws = sheets(1) For Each folder In Outlook.Session.folders(MailboxName).folders With folder If .Class <> olSearch Then Else Ws.Activate LastWrow = Ws.Range("A" & Ws.rows.Count).End(xlup).Row For iRow = 1 To .Items.Count 'ws.Cells(iRow, 1).Select Ws.Cells(LastWrow + iRow, 1) = .Items.Item(iRow).SenderName Ws.Cells(LastWrow + iRow, 2) = .Items.Item(iRow).Subject Ws.Cells(LastWrow + iRow, 3) = .Items.Item(iRow).ReceivedTime Ws.Cells(LastWrow + iRow, 4) = .Items.Item(iRow).Categories Next iRow End If End With Next folder MsgBox "Outlook Mails Extracted to Excel" End Sub
- 将模板从Excel复制到Outlook
- 尝试使用VBA收集电子邮件统计信息时出错
- 在outlook邮件正文excel vba中embedded图片
- PowerShell脚本从特定的Outlook文件夹中提取.xls文件
- Excel VBA Outlook.Recipients.Add(“别名”) – 处理未解决的项目
- VBA Outlook 2010.将特定的Outlook正文文本解压到excel
- VBA到Outlook问题 – 不要用逗号表示数字
- 有没有办法使用VBA中的Items.find()从Outlook中提取某些文本?
- 为什么我的VBA脚本在Outlook中寻找一个子文件夹是随机的,然后有时候不会呢?