【问题标题】:Delete blank line at the top of email删除电子邮件顶部的空白行
【发布时间】:2021-01-09 06:00:51
【问题描述】:

我雇了一个人来编写代码,当电子邮件被突出显示时执行以下操作。

FW 电子邮件
从剪贴板插入已复制的项目并粘贴到“收件人”字段(复制的电子邮件地址)
从主题行中删除 FW:
删除原始邮件上方的所有内容,包括原始电子邮件信息/日期/地址等。

它在正文的第一个单词“Hello Name”上方留下一个空行。

如何删除该空行,使“Hello Name”位于电子邮件的顶部,或者一起删除“Hello Name”?

Sub ForwardFromClipboard2()
    
    Dim tmpEmail As MailItem
    Dim fwEmail As MailItem    
    
    For Each Item In Application.ActiveExplorer.Selection
        If TypeName(Item) = "MailItem" Then
            
            Set tmpEmail = Item.Forward
            tmpEmail.Subject = Item.Subject
            tmpEmail.To = GetClipBoardText
            
            tmpEmail.Display
            RemoveSign (tmpEmail.Subject)
            
            Set tmpEmail = Nothing
        End If
    Next
End Sub
    
Sub RemoveSign(MySubject As String)
    Dim objOL As Application
    Dim objDoc As Object
    Dim objSel As Object
    
    Set objOL = Application
    Set objDoc = objOL.ActiveInspector.WordEditor
    Set objSel = objDoc.Application.Selection
        
    ' delete signature
    If objDoc.Bookmarks.Exists("_MailOriginal") Then
        Set objBkm = objDoc.Bookmarks("_MailOriginal")
        objSel.Start = 0
        objSel.End = objBkm.Start
        objDoc.Windows(1).Selection.Delete
    End If
    
    ' delete FROM:, TO:, SUBJECT:
    Dim search As String
    search = "Subject:"
    Dim search2 As String
    search2 = MySubject
    
    For Each para In objDoc.Paragraphs
    
        Dim txt As String
        txt = para.Range.Text
    
        If InStr(txt, search) Or InStr(txt, search2) Then
            para.Range.Delete
            Exit For
        End If
    
    Next
End Sub
    
Function GetClipBoardText() As String
    Dim DataObj As MSForms.DataObject
    Set DataObj = New MSForms.DataObject
    
    On Error GoTo Whoa
    
    DataObj.GetFromClipboard
    
    myString = DataObj.GetText(1)
    GetClipBoardText = myString
    
    Exit Function
Whoa:
    GetClipBoardText = ""
End Function

【问题讨论】:

    标签: vba outlook


    【解决方案1】:

    您可以根据需要使用HTMLBody 或Word 对象模型来编辑邮件正文。 Word 对象模型提供Range 类的Delete 方法,用于删除指定数量的字符或单词。请参阅Chapter 17: Working with Item Bodies 了解更多信息。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-01-23
      • 2016-10-05
      • 1970-01-01
      • 2015-05-03
      • 2016-07-09
      • 1970-01-01
      • 2017-12-08
      相关资源
      最近更新 更多