如何根据特定的发件人和特定的日期使用vba将Outlook邮件表复制到excel

时间:2019-01-12 14:46:33

标签: excel vba outlook

这是代码:
另一个问题是特定发件人是否已回复包含表的邮件,该表也是同一邮件中的副本

    Sub ImportToExcel()
     Dim OutlookApp As Outlook.Application
     Dim OutlookNameSpace As Namespace
     Dim folder As MAPIfolder
     Dim xDoc As Word.Document
     Dim xTable As Word.Table
     Dim OutlookMail As Variant
     Dim xWb As Workbook
     Dim xWs As Worksheet
     Dim xExcel As Excel.Application
     Dim xRow As Integer
     Dim i As Integer
     Set OutlookApp = New Outlook.Application
     Set OutlookNameSpace = OutlookApp.GetNamespace("MAPI")
     Set folder=OutlookNameSpace.GetDefaultFolder(olFolderInbox).Folders("DL")
     Set xExcel = New Excel.Application
     Set xWb = xExcel.Workbooks.Add
      xExcel.Visible = True
      Set xWs = xWb.Sheets(1)
       xRow = 1
        For Each OutlookMail In folder.Items
            If OutlookMail.ReceivedTime = "1/12/2019" And OutlookMail.Sender = "Vince Onal" Then
            Set xDoc = OutlookMail.GetInspector.WordEditor
            For i = 1 To xDoc.tables.Count
            Set xTable = xDoc.tables(i)
            xTable.Range.Copy
            xWs.Paste
            xRow = xRow + xTable.Rows.Count + 1
            xWs.Range("A" & CStr(xRow)).Select
                Next
               End If
               Next

                 End Sub

1 个答案:

答案 0 :(得分:0)

要获取ReceivedTime的格式,请执行以下操作:

Debug.Print " OutlookObj.ReceivedTime: " & OutlookObj.ReceivedTime

您将发现“ 1/12/2019”不存在匹配项

尝试

If Format(OutlookMail.ReceivedTime, "mm/dd/yyyy") = "1/12/2019" Then