使用Excel宏进入Outlook中的指定文件夹,并基于变量(Excel中的值/命名范围)从电子邮件(收件人,主题等)中提取数据。
我无法提取电子邮件中“主题”和“大小”数据之外的任何内容。
[例如,如果我尝试使用与“主题”或“大小”编码相同的方法提取“收件人”数据,那么它就会出现]]
“运行时错误'438':对象不支持此属性或方法错误。
Sub FetchEmailData() Dim appOutlook As Object Dim olNs As Object Dim olFolder As Object Dim olItem As Object Dim iRow As Integer 'Get/create Outlook Application On Error Resume Next Set appOutlook = GetObject(, "Outlook.Application") If appOutlook Is Nothing Then Set appOutlook = CreateObject("Outlook.Application") End If On Error GoTo 0 Set olNs = appOutlook.GetNamespace("MAPI") Set olFolder = olNs.Folders("Mailbox_name").Folders("Inbox").Folders("XYZ").Folders("2017").Folders("04. April").Folders("Etc") 'Clear ThisWorkbook.Sheets("Test").Cells.Delete 'Build headings: ThisWorkbook.Sheets("Test").Range("A1:D1") = Array("Sender_Email_Address", "Subject", "To", "Size") For iRow = 1 To olFolder.Items.Count ThisWorkbook.Sheets("Test").Cells(iRow, 1).Select 'ThisWorkbook.Sheets("Test").Cells(iRow, 1) = olFolder.Items.Item(iRow).SenderEmailAddress ThisWorkbook.Sheets("Test").Cells(iRow, 2) = olFolder.Items.Item(iRow).Subject 'ThisWorkbook.Sheets("Test").Cells(iRow, 3) = olFolder.Items.Item(iRow).To ThisWorkbook.Sheets("Test").Cells(iRow, 4) = olFolder.Items.Item(iRow).Size Next iRow End Sub
如何提取电子邮件字段,例如“发件人”和“收件人”?
此外,如果我的Set olFolder
值是Excel中的一个命名范围,并且该日期范围随日期(=Today()
)动态变化,并且在Excel中使用Folder_Location
作为命名范围,那么书写是否正确;
Set olFolder = ThisWorkbook.Sheets("Setup").Range("Folder_Location")
哪里
Folder_Location = olNs.Folders("Mailbox_name").Folders("Inbox").Folders("XYZ").Folders("2017").Folders("04. April").Folders("Etc")
[当我尝试将其链接到
olFolder
时,这总是出错。
使用Excel宏进入Outlook中的指定文件夹,并基于变量(Excel中的值/命名范围)从电子邮件(收件人,主题等)中提取数据。我无法提取...
我知道这是一个老问题,但是最近我遇到了同样的问题,经过您已经做的事之后才能够解决。