电子邮件正文中有一个表格,可粘贴到Excel工作表中

时间:2019-05-29 12:28:47

标签: excel vba outlook

我希望将发件人和邮件正文粘贴到我的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

此外,此文件夹中的所有电子邮件都将包含一个表,因此我希望它在每个发件人及其表被粘贴时循环播放。

1 个答案:

答案 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 ...