【发布时间】:2019-03-11 03:50:16
【问题描述】:
我想通过单击 excel 中的按钮将 Outlook 非 HTML 电子邮件正文 导出到 excel 中。以下是我的代码。感谢是否有人可以在这方面为我提供帮助。
这是我用来打印纯文本电子邮件正文的代码,但我收到了很多不需要的文本
sText = StrConv(OutlookMail.RTFBody, vbUnicode)
Range("D3").Offset(i, 0).Value = sText
我确实试过了,但它提示 运行时错误 '1004' 应用程序定义或对象定义的错误但它适用于带有 HTML 标记的正文。
Range("D3").Offset(i, 0).Value = OutlookMail.Body
这是我的电子邮件文件夹的结构
以下是我完整的 vba 代码
Sub extract_email()
Dim OutlookApp As New Outlook.Application
Dim Folder As Outlook.MAPIFolder
Dim OutlookMail As MailItem
Dim sText As String
Dim i As Integer
Set myAccount = OutlookApp.GetNamespace("MAPI")
Set Folder = myAccount.GetDefaultFolder(olFolderInbox).Parent
Set Folder = Folder.Folders("Test_Main").Folders("Test_Sub")
i = 1
Range("A4:D20").Clear
For Each OutlookMail In Folder.Items
If OutlookMail.ReceivedTime >= Range("B1").Value And OutlookMail.SenderName = "Test_Admin" Then
Range("A3").Offset(i, 0).Value = OutlookMail.Subject
Range("A3").Offset(i, 0).Columns.AutoFit
Range("A3").Offset(i, 0).VerticalAlignment = xlTop
Range("B3").Offset(i, 0).Value = OutlookMail.ReceivedTime
Range("B3").Offset(i, 0).Columns.AutoFit
Range("B3").Offset(i, 0).VerticalAlignment = xlTop
Range("C3").Offset(i, 0).Value = OutlookMail.SenderName
Range("C3").Offset(i, 0).Columns.AutoFit
sText = StrConv(OutlookMail.RTFBody, vbUnicode)
Range("D3").Offset(i, 0).Value = sText
Range("D3").Offset(i, 0).Columns.AutoFit
Range("D3").Offset(i, 0).VerticalAlignment = xlTop
i = i + 1
End If
Next OutlookMail
Set Folder = Nothing
End Sub
【问题讨论】:
-
你试过
OutlookMail.Body吗? -
我做到了,它只适用于带有 HTML 标签的电子邮件正文。纯文本正文将导致错误 1004。
-
@Anthony White 如果您首先将正文写入纯文本文件,然后将第二个子导入文本文件到 excel,它会起作用。