2017-02-06 3 views
0

Ich versuche, ein Word-Dokument mit Daten aus einer Excel-Tabelle zu füllen. Wenn ich jedoch den Code unten ausführe, wird "sitename" durch Daten von Zelle "B2", "B3" und einer Anzahl von anderen Zellen ersetzt, die ich benutzte, um andere Wörter zu ersetzen. Ich will nur, dass es durch Zelle "B2" ersetzt wird.Suche mehrere Wörter in Word-Dokument mit Excel-Daten ersetzen

Dim results As Workbook 
Dim wApp 
Dim wDoc 
Private Sub populateSite() 
    With wDoc 
     'Site ID 
     .Application.Selection.Find.Text = "<<sitename>>" 
     .Application.Selection.Find.Execute 
     .Application.Selection = results.Sheets(1).Range("B2") 
     .Application.Selection.EndOf 

     'Transformer ID 
     .Application.Selection.Find.Text = "<<TXname>>" 
     .Application.Selection.Find.Execute 
     .Application.Selection = results.Sheets(1).Range("B3") 
     .Application.Selection.EndOf 
    End With 
End Sub 

Sub PopulateReport() 
    Set wApp = CreateObject("Word.Application") 
    Set wDoc = wApp.documents.Open("fileNameAndPath") 
    wApp.Visible = True 
    Call populateSite 
End Sub 

hier ist ein link zu einen Teil des Wortes doc

Antwort

0

Ich brauchte nur

Set results = ActiveWorkbook 

hinzufügen, bevor die populateSite Funktion aufrufen. Danach funktioniert die Funktion gut.

Wenn dies nicht funktioniert, senden Sie bitte einen Screenshot der Word-Datei.

+0

Ich habe diese Zeile hinzugefügt, aber jetzt löscht sie nur den Text <> und ersetzt ihn nicht durch irgendwas. Ich habe einen Screenshot in meine Bearbeitung eingefügt –

+0

Haben Sie versucht, eine Suche/Ersetzen zu tun. https://msdn.microsoft.com/en-us/library/office/aa211953(v=office.11).aspx – Shmukko

+0

Ich bin gelandet, Lesezeichen in der Word-Datei zu platzieren und nur diese zu ersetzen. Es ist viel mühsamer, aber das Makro funktioniert gut. Vielen Dank –

Verwandte Themen