好吧,我对这个 VBA 代码很陌生。我找到了在 excel 中提取电子邮件详细信息的代码。这段代码以我想要的方式为我工作,但唯一的问题是我在电子邮件正文中获得的结果。我在电子邮件中有一个包含相关详细信息的表格,并且我希望每个单独的电子邮件也以相同的方式在 excel 中输出。
这是代码。
Sub GetFromOutlook()
Dim OutlookApp As Outlook.Application
Dim OutlookNamespace As Namespace
Dim Folder As MAPIFolder
Dim OutlookMail As Variant
Dim i As Integer
Set OutlookApp = New Outlook.Application
Set OutlookNamespace = OutlookApp.GetNamespace("MAPI")
Set Folder = OutlookNamespace.GetDefaultFolder(olFolderInbox).Folders("Personal")
i = 1
For Each OutlookMail In Folder.Items
If OutlookMail.ReceivedTime >= Range("From_date").Value Then
Range("eMail_subject").Offset(i, 0).Value = OutlookMail.Subject
Range("eMail_date").Offset(i, 0).Value = OutlookMail.ReceivedTime
Range("eMail_sender").Offset(i, 0).Value = OutlookMail.SenderName
Range("eMail_text").Offset(i, 0).Value = OutlookMail.Body
i = i + 1
End If
Next OutlookMail
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
End Sub
以下是电子邮件正文内容的示例。Sample of Email Body image
目前,查询的结果是 - 电子邮件的正文被粘贴到一个特定的单元格中。
有人可以帮忙吗
最佳答案
我可能是错的,但看起来你的偏移量并没有因为每条数据而改变。偏移量基于当前单元格。如果您将某些内容写入偏移量 (i,0),然后再次执行相同操作,您将有效地写入初始数据的顶部。这就是为什么您最终只得到电子邮件文本的原因,因为这是最后一次写入操作。
关于excel - 从excel VBA代码中的电子邮件正文中提取表格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67376622/