Excel 从电子邮件中检索特定文本

Excel 从电子邮件中检索特定文本,excel,vba,outlook,Excel,Vba,Outlook,我希望阅读Outlook收件箱中所有今天收到的主题为“取消提醒”的电子邮件 在这些电子邮件的正文中有两行6列的数据。相当简单的电子邮件正文如下所示 Record ID Date Name Date 2 Status Note R-99864 06-20-2019 Fonsi 06-19-2019 Canceled Record was out of date range 我想提取记录ID并将其放入excel工作表中 我可以通过

我希望阅读Outlook收件箱中所有今天收到的主题为“取消提醒”的电子邮件

在这些电子邮件的正文中有两行6列的数据。相当简单的电子邮件正文如下所示

Record ID    Date        Name   Date 2       Status     Note
R-99864      06-20-2019  Fonsi  06-19-2019   Canceled   Record was out of date range 
我想提取记录ID并将其放入excel工作表中

我可以通过搜索电子邮件主题来识别我的电子邮件。但是,我不知道如何提取记录ID

您能告诉我如何使用Excel VBA提取我的记录ID吗

下面是我根据电子邮件主题确定电子邮件的代码


Dim myOlApp As New Outlook.Application
Dim myNameSpace As Outlook.Namespace
Dim myInbox As Outlook.MAPIFolder
Dim myitems As Outlook.Items
Dim myitem As Object
Dim Found As Boolean

Set myNameSpace = myOlApp.GetNamespace("MAPI")
Set myInbox = myNameSpace.GetDefaultFolder(olFolderInbox)
Set myitems = myInbox.Items
Found = False

For Each myitem In myitems
    If myitem.Class = olMail Then
        If InStr(1, myitem.Subject, "Cancel Alert") > 0 Then
            Debug.Print "Found"
            MsgBox (myitem.Subject)
            Found = True
        End If
    End If
Next myitem

'If the subject isn't found:
If Not Found Then
    NoResults.Show
End If


'myOlApp.Quit
Set myOlApp = Nothing

End Sub


纯文本邮件还是?如何确定它是纯文本邮件?打开它,单击“编辑邮件”按钮,然后转到“格式文本”选项卡,查看突出显示的选项(HTML、纯文本或富文本)。我单击“回复”打开电子邮件,因为没有“编辑邮件”按钮。在我的回复中,“Aa HTML”已经突出显示,所以我猜文本是HTML格式的。您应该能够使用
InStr(1.htmlbody,“Record ID”)
;有了这些知识,你可以
Split(),然后将拆分部分从
指令中记录的字符开始粘贴。纯文本邮件还是?如何确定它是纯文本邮件?打开它,单击“编辑邮件”按钮,然后转到“格式文本”选项卡,查看我单击“回复”时突出显示的选项(HTML、纯文本还是富文本)打开电子邮件,因为没有“编辑邮件”按钮。在我的回复中,“Aa HTML”已经突出显示,所以我猜文本是HTML格式的。您应该能够使用
InStr(1.htmlbody,“Record ID”)
;有了这些知识,你可以
Split()
根据换行符(我认为这是
Chr(58)
…这是一个很大的假设,你在数据前后都有换行符),然后从
InStr
中记录的字符开始进行拆分并粘贴。