【问题标题】:How to delete a phrase from email?如何从电子邮件中删除短语?
【发布时间】:2020-03-10 18:03:06
【问题描述】:

我想从来自特定域以外的来源的每封电子邮件的开头删除以下短语:

“这是一封外部电子邮件。除非您验证发件人并且知道内容是安全的,否则请勿单击链接或打开附件。”

我正在尝试从每封电子邮件中删除此短语。

我从另一个试图做类似事情的人那里获取了一些在线代码。

Sub Del()

Dim Ins As Outlook.Inspector
Dim Document As Word.Document
Dim Word As Word.Application
Dim Selection As Word.Selection

Set Ins = Application.ActiveInspector
Set Document = Ins.WordEditor
Set Word = Document.Application
Set Selection = Word.Selection

Dim search As String
search = "This is an EXTERNAL email. Do not click links or open attachments unless you validate the sender and know the content is safe."

Dim para As Paragraph
For Each para In Document.Paragraphs

    Dim txt As String
    txt = para.Range.Text

    If InStr(txt, search) Then
        para.Range.Delete
    End If

Next

End Sub

我明白了

运行时错误'91'

在线 9 Set Document.

【问题讨论】:

  • 我不熟悉 Word 编辑器,但如果我熟悉的话,我怀疑我会尝试将它用于这种类型的编辑。 VBA 字符串操作会更容易。但是,在编辑 HTML 正文之前,您需要确保知道它是什么。如果字符串中有任何格式,您的 Find 将不起作用。尝试My full diagnostic routine 以准确发现体内的内容。它总是相同的字符串吗?大概是。在这种情况下,一个简单的替换就可以解决问题。
  • 一旦您知道要删除什么,请查看整个问题,其中 我的完整诊断程序 是其中的一部分答案。这与您的问题类似,因此阅读问题和完整答案会有所帮助。

标签: vba outlook


【解决方案1】:

这在 Outlook 中更容易工作:

sub delete_part_of_text()

  Dim search As String
  search = "This is an EXTERNAL email. Do not click links or open attachments unless you validate the sender and know the content is safe."

  If Not TypeOf Item Is mailitem Then Exit Sub
  Item.HTMLBody = Replace(Item.HTMLBody, search, "")
end sub

当然,您必须对此进行调整——这是否应该在每个收到的邮件上自动运行,您是否会在需要处理一封/一些邮件时调用它?这改变了过程的调用,但原理上是有效的。

最大

【讨论】:

    猜你喜欢
    • 2011-03-02
    • 1970-01-01
    • 1970-01-01
    • 2010-09-27
    • 1970-01-01
    • 1970-01-01
    • 2019-12-15
    • 2010-12-08
    • 2014-09-03
    相关资源
    最近更新 更多