完全来说,我对编写VBA编码一无所知。我雇了一个人在Outlook中编写代码,可以将其设置为突出显示电子邮件时执行以下操作的宏。
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中编写代码,可以将其设置为突出显示电子邮件时执行以下操作的宏。固件电子邮件...
您可以根据需要使用HTMLBody
或Word对象模型来编辑消息正文。 Word对象模型提供Delete
类的Range
方法,该方法删除指定数量的字符或单词。有关更多信息,请参见Chapter 17: Working with Item Bodies。