我希望将发件人和邮件正文粘贴到我的excel文件中。我已经达到了粘贴电子邮件发件人的目的,但是粘贴正文实际上是一个表格时,由于只将其粘贴到一个单元格中,因此它破坏了格式。
你们能帮助我如何将表格粘贴到发件人旁边我的电子邮件中。这是我的代码。
如果我认为正确,则粘贴表格的代码应从以下注释处开始:“可以在此处将表格粘贴到电子邮件正文中。
对此有何想法?
Private Sub CommandButton1_Click()
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("ABV")
i = 2
With ThisWorkbook.Sheets("Sheet2")
For Each OutlookMail In Folder.Items
If OutlookMail.ReceivedTime >= .Range("C1") Then
With .Cells(i, 1)
.Value = OutlookMail.SenderName
.Columns.AutoFit
.VerticalAlignment = xlTop
End With
With .Cells(i, 2)
'Paste the table inside the email body here
End With
i = i + 1
End If
Next OutlookMail
End With
Set Folder = Nothing
Set OutlookNamespace = Nothing
Set OutlookApp = Nothing
End Sub
此外,此文件夹中的所有电子邮件都将包含一个表,因此我希望它在每个发件人及其表被粘贴时循环播放。
答案 0 :(得分:0)
您可以通过以下方式在电子邮件的正文中查找和复制表格:
OutlookMail.GetInspector.WordEditor.Range.Tables(1).Range.Copy
,然后将其粘贴e。 G。作为您Excel.Range
中的值:
With ThisWorkbook.Sheets("Sheet2")
.Range("A1").PasteSpecial xlPasteValues
如果要粘贴剪贴板支持的其他格式,请尝试使用Excel的宏记录器获取理想的格式。结果是这样的:
With ThisWorkbook.Sheets("Sheet2")
.Range("A1").Select
.PasteSpecial Format:="Text" ' or "HTML" or ...