2017-07-26 1 views
1

Wie Sie aus dem Code (gebunden an eine Befehlsschaltfläche in einem Word 2016-Dokument) sehen kann ich jetzt haben, die Befehlsschaltfläche werden:Verwendung von .body = ActiveDocument. in nur einem Teil eines Word-Dokument ziehen

  1. Start/Anzeige eine E-Mail
  2. Fügt die ALL Dokumentinhalte an den Körper einer E-Mail (via .Body = ActiveDocument.Content)
  3. das Word-Dokument anhängen

Frage: gibt es eine Möglichkeit zu ziehen nur in Portionen der Dokumentinhalt in den Körper? Grundsätzlich habe ich ein Formular, das von Mitarbeitern ausgefüllt wird. Nach (unten) dem Formular gibt es einige Anweisungen zum Ausfüllen des Formulars, einige Definitionen und andere administrative Informationen, die ich NICHT lieber in den Text der E-Mail ziehen würde.

Aktuelle Code:

Dim OL As Object 
Dim EmailItem As Object 
Dim Doc As Object 

Application.ScreenUpdating = False 

Set OL = CreateObject("Outlook.Application") 
Set EmailItem = OL.CreateItem(olMailItem) 
Set Doc = ActiveDocument 

Doc.Save 

With EmailItem 
    .Subject = "test subject line" 
    .Body = ActiveDocument.Content 
    .To = "[email protected]" 
    .Importance = olImportanceNormal 
    .Attachments.Add Doc.FullName 
    .Display 
End With 

Application.ScreenUpdating = True 

Set Doc = Nothing 
Set OL = Nothing 
Set EmailItem = Nothing 

Antwort

0

die .Body Eigenschaft enthält einen String. ActiveDocument.Content ist eine Zeichenfolge, die das gesamte Dokument umfasst. Technisch ist jeder kleinere Teil des Dokuments auch eine Zeichenkette. Daher können Sie einen beliebigen Teil des Dokuments auswählen und der Eigenschaft .Body zuweisen. Mit diesem Link können Sie den Teil des Dokuments auswählen, den Sie in Ihre E-Mail einfügen möchten. VBA to copy text from excel to on specific location in wordfile Der zu verwendende Code wäre

Dim Rng As Range 
Dim Excerpt As String 

' Find the range with guidance from the above link 
Excerpt = Rng.Text 
EmailItem.Body = Excerpt 
Verwandte Themen