在电子邮件中查找文本并在Outlook 2013中删除此前的所有文本

时间:2016-04-07 06:24:45

标签: vba outlook outlook-vba outlook-2010 outlook-2013

我想在电子邮件中找到一个字符串,并删除之前的所有文字。与此相反:

    Option Explicit

Sub DeleteAfterText()

' Deletes all text after endStr.

Dim currMail As mailitem
Dim msgStr As String

Dim endStr As String
Dim endStrStart As Long
Dim endStrLen As Long

Set currMail = ActiveInspector.CurrentItem
endStr = "Text"
endStrLen = Len(endStr)

msgStr = currMail.HTMLBody
endStrStart = InStr(msgStr, endStr)

If endStrStart > 0 Then
    currMail.HTMLBody = Left(msgStr, endStrStart + endStrLen)
End If

End Sub

从此堆栈溢出页面获取的示例:Find Text in an email and delete all text after this in Outlook 2010

感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

关键线是这样的:

currMail.body = Right(msgStr, Len(msgStr) - (endStrStart - 1))

在原始代码中添加更多内容:

Option Explicit

Sub DeleteBeforeText_not_olFormatHTML()

Dim currMail As mailItem
Dim msgStr As String

Dim endStr As String
Dim endStrStart As Long
Dim endStrLen As Long

Set currMail = ActiveInspector.currentItem
endStr = "Text"
endStrLen = Len(endStr)

If currMail.BodyFormat = olFormatHTML Then
    currMail.BodyFormat = olFormatRichText
End If

msgStr = currMail.body
endStrStart = InStr(msgStr, endStr)

If endStrStart > 0 Then
    currMail.body = Right(msgStr, Len(msgStr) - (endStrStart - 1))
End If

End Sub