Steuern Sie Word aus Excel mit VBA in Microsoft Excel 2010

Anonim

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

Der Code, den Sie verwenden können, ist -

Option explizit

Unter CreateNewWordDoc()
Dim i As Integer
Dim wrdApp als Objekt, wrdDoc als Objekt
Setze wrdApp = CreateObject("Word.Application")
wrdApp.Visible = True
Set wrdDoc = wrdApp.Documents.Add
Mit wrdDoc
Für i = 1 bis 100
.Content.InsertAfter „Hier ist eine Beispiel-Testzeile #“ & i
.Content.InsertParagraphAfter
Als nächstes
If Dir("B:\Test\MyNewWordDoc.docx") "" Then Kill "B:\Test\MyNewWordDoc.docx"
.Speichern unter („B:\Test\MyNewWordDoc.docx“)
.Nah dran
Ende mit
wrdApp.Beenden
wrdDoc = Nichts setzen
wrdApp = Nichts setzen
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
  • Kopiere den Code in das Codefenster rechts

Sehen wir uns nun an, wie dieser Code funktioniert -

Zuerst deklarieren wir die Variablen, die wir brauchen -i als Integer, um jede Zeile zu inkrementieren, während sie aus der Excel-Datei auf das Wort doc aufgefüllt wird. Dann die 2 Objektvariablen wrdApp und wrdDoc, wrdApp ist das Word-Anwendungsobjekt und wrdDoc ist das Word-Dokumentobjekt.

Setze wrdApp = CreateObject("Word.Application")

Wenn Word bereits in Ihrem System ausgeführt wird,Objekt erstellen erstellt eine neue Instanz von Word. Diese Zeile weist also der Word-Anwendung die Objektvariable wrdApp zu, die Sie später im Code verwenden können.

wrdApp.Visible = True

Die neu erstellte Instanz von Word wird beim Erstellen nicht angezeigt. 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 Word-Anwendung 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.

Falls Sie keine neue Arbeitsmappe, sondern eine vorhandene Arbeitsmappe öffnen möchten, können Sie diese Zeile durch ersetzen

Set wrdDoc = wrdApp.Documents.Open("B:\Eigene Dateien\WordDocs\Doc1.docx")

Diese Zeile öffnet ein vorhandenes Word-Dokument, das an der angegebenen Stelle gespeichert wurde.

Mit wrdDoc… .Ende mit

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 noch einmal wiederholen. Sie können direkt mit dem Punkt (".") vor allen Objekten beginnen, die sich auf wrdDoc beziehen. Diese Schleife endet mit dem Ende mit Stellungnahme. Nachdem die End With-Anweisung eingegeben wurde, können Sie nicht nur mit dem „.“ auf die Objekte nach wrdDoc verweisen.

Für i = 1 bis 100
.Content.InsertAfter „Hier ist eine Beispiel-Testzeile #“ &i
.Content.InsertParagraphAfter
Als nächstes

Dies ist die „For“-Schleife. Es erhöht sich von 1 bis 100 und fügt bei jedem Inkrement eine Zeile mit dem Text „Hier ist eine Beispiel-Testzeile #“ ein und fügt dann die Inkrementnummer hinzu. Dann fügt es einen Zeilenumbruch / Absatzumbruch ein, so dass der nächste Inkrement in der nächsten Zeile erscheint, wie ein neuer Absatz.

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

If Dir("B:\Test\MyNewWordDoc.Docx") "" Then Kill "B:\Test\MyNewWordDoc.docx"

.Speichern unter („B:\Test\MyNewWordDoc.docx“)

.Nah dran

Sobald die „For“-Schleife abgeschlossen ist, prüft der Code, ob die Datei MyNewWordDoc.docx existiert. Wenn dies der Fall ist, wird es gelöscht. Und dann wird die neue Datei unter demselben Namen gespeichert und die Datei geschlossen.

wrdApp.Beenden

wrdDoc = Nichts setzen
wrdApp=Nichts einstellen

Das Wort Applikation wird geschlossen und dann werden die 2 angelegten Objekte freigegeben bzw. auf „Nichts“ gesetzt, so dass der von diesen Objekten belegte Speicher freigegeben wird. Dies ist der gesamte Code, der sich um das Kopieren von Inhalten von Excel nach Word kümmert.