Oft müssen Sie Daten aus einer Excel-Datei in ein Word-Dokument kopieren. Sie können dies sehr einfach mit einem Makro tun. Das Makro öffnet ein neues / vorhandenes Word-Dokument, kopiert den Inhalt und speichert und schließt das Word-Dokument. Mal sehen, wie das gemacht wird.

Der Code, den Sie verwenden können, ist – Option Explicit _Sub CreateNewWordDoc ()

Dim i As Integer Dim wrdApp As Object, wrdDoc As Object Set wrdApp = CreateObject („Word.Application“)

wrdApp.Visible = True Setze wrdDoc = wrdApp.Documents.Add With wrdDoc Für i = 1 bis 100 .Content.InsertAfter “Hier ist ein Beispiel für die Testzeile #” & i .Content.InsertParagraphAfter Next i If Dir (“B: \ Test \ MyNewWordDoc.docx ”) <>“ ”Dann töte“ B: \ Test \ MyNewWordDoc.docx ”.SaveAs (“ B: \ Test \ MyNewWordDoc.docx ”)

Ende schließen mit wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing End Sub_ Um den obigen Code in Ihre Datei zu kopieren, drücken Sie Alt + F11 auf der Tastatur. Auf der linken Seite sehen Sie Microsoft Excel-Objekte. Klicken Sie mit der rechten Maustaste und wählen Sie Einfügen Klicken Sie dann auf Modul * Kopieren Sie den Code in das Codefenster auf der rechten Seite. Jetzt sehen wir, wie dieser Code funktioniert. Zuerst deklarieren wir die benötigten Variablen – i als Ganzzahl, um jede Zeile zu erhöhen, wenn sie aus der Excel-Datei in das Word-Dokument gefüllt wird Bei den beiden Objektvariablen wrdApp und wrdDoc ist wrdApp das Word-Anwendungsobjekt und wrdDoc das Word-Dokumentobjekt.

Set wrdApp = CreateObject („Word.Application“) _ Wenn Word bereits in Ihrem System ausgeführt wird, erstellt _CreateObject eine neue Instanz von Word. In dieser Zeile wird der Word-Anwendung die Objektvariable wrdApp zugewiesen, die Sie später im Code verwenden können .

wrdApp.Visible = True Die neu erstellte Instanz von Word ist beim Erstellen nicht sichtbar. Um es sichtbar zu machen, müssen Sie wrdApp.Visible = True setzen, damit es sichtbar ist.

Set wrdDoc = wrdApp.Documents.Add Wir haben die neue Instanz der Wortanwendung erstellt, aber noch kein leeres Word-Dokument geöffnet. Dieser Befehl öffnet also ein neues Word-Dokument. Das Objekt wrdDoc wurde diesem neuen Dokument zugewiesen, damit wir es später im Code verwenden können.

Wenn Sie keine neue Arbeitsmappe öffnen möchten, sondern eine vorhandene Arbeitsmappe öffnen möchten, können Sie diese Zeile durch _Set wrdDoc = wrdApp.Documents.Open („B: \ Eigene Dateien \ WordDocs \ Doc1.docx“) ersetzen. _ Diese Zeile wird geöffnet Ein vorhandenes Word-Dokument, das am angegebenen Speicherort gespeichert wurde.

Mit wrdDoc… .End With Dies ist unsere „With“ -Schleife, die vollständig mit dem wrdDoc-Objekt funktioniert. Sobald Sie diese Schleife öffnen, müssen Sie den Text „wrdDoc“ in dieser Schleife nicht erneut wiederholen. Sie können direkt mit dem beginnen Punkt („.“)

vor allen Objekten, die sich auf wrdDoc beziehen. Diese Schleife endet mit der Anweisung End With. Nachdem die End With-Anweisung eingegeben wurde, können Sie nach wrdDoc nicht mehr nur mit dem „.“ Auf die Objekte verweisen.

Für i = 1 bis 100 .Content.InsertAfter „Hier ist ein Beispiel für die Testzeile #“ & i .Content.InsertParagraphAfter Next i Dies ist die „For“ -Schleife. Es erhöht sich von 1 auf 100 und fügt bei jedem Inkrement eine Zeile mit dem Text „Hier ist ein Beispiel für eine Testzeile #“ ein und fügt dann die Inkrementnummer hinzu. Anschließend wird ein Zeilenumbruch / Absatzumbruch eingefügt, sodass das nächste Inkrement auf dem angezeigt wird nächste Zeile, wie ein neuer Absatz.

Dieser Vorgang wird also 100 Mal wiederholt, da die for-Schleife für i = 1 bis 100 lautet. Dies ist die Ausgabe, die Sie erhalten –

img2

Wenn Dir („B: \ Test \ MyNewWordDoc.Docx“) <> „“ Dann töte „B: \ Test \ MyNewWordDoc.docx“ _ _ .SaveAs („B: \ Test \ MyNewWordDoc.docx“) _ _.Close Sobald die „For“ -Schleife abgeschlossen ist, prüft der Code, ob die Datei MyNewWordDoc.docx vorhanden ist. Wenn dies der Fall ist, wird sie gelöscht. Anschließend wird die neue Datei unter demselben Namen gespeichert und die Datei geschlossen.

wrdApp.Quit Set wrdDoc = Nothing Set wrdApp = Nothing Die Wortanwendung wird geschlossen, und dann werden die beiden erstellten Objekte freigegeben oder auf „Nothing“ gesetzt, sodass der von diesen Objekten belegte Speicher freigegeben wird. Dies ist der gesamte Code, der das Kopieren von Inhalten von Excel nach Word übernimmt.

image 48