Live-Forum - Die aktuellen Beiträge
Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender

Forumthread: Wert aus Word-Dok auslesen

Wert aus Word-Dok auslesen
Günther
Hallo!
Ich möchte per Excel-Makro Werte aus einem Word-Dokument auslesen. Das wäre an sich kein Problem, unten stehender Code liest zum Beispiel den Inhalt einer Textmarke aus. Der gesuchte Wert ist in meinem Fall aber in eine Zelle einer im Word-Dok eingebetteten Excel-Tabelle eingetragen.
Wie komme ich an den heran?
Dim appWD As Word.Application
Set appWD = CreateObject("Word.Application")
With appWD
.Documents.Open "E:\Word\Testdok.docx"
.Selection.GoTo What:=wdGoToBookmark, Name:="Test"
Range("A1") = .Selection.Text
.ActiveDocument.Close SaveChanges:=False
.Quit
End With
Set appWD = Nothing
Manchmal habe ich mit obigen Code das Problem, dass Word nicht sauber geschlossen wird, sondern Fenster zum Speichern der Normal.dot hinterlässt. Kann man das irgendwie „sauberer“ programmieren, um diesen Fehler zu vermeiden?
Vielen Dank für alle Hinweise
Günther Grund
Anzeige

2
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Benutzer
Anzeige
AW: Wert aus Word-Dok auslesen
15.12.2010 13:09:52
Sobotta
Hallo Günther,
hatte auch schon mal das Problem.
Anschließen eine bisschen Code (ungetestet).
Gruß
Mark
Sub temp()
Dim ojbZeile        As Object
Dim sPfad           As String
Dim appWord         As Object
Dim sWordName       As String
Dim Tables          As Word.Table
Dim sZellenText     As String
Dim i               As Integer
Dim j               As Integer
Set appWord = CreateObject("Word.Application")
sPfad = "C:\Documents and Settings\sobottam\privat\Gut zu wissen\Word_to_exel\"
sWordName = "Neu Microsoft Word Document.doc"
'Worddocument öffnen
appWord.Documents.Open sPfad & sWordName
For Each Tables In appWord.ActiveDocument.Tables
For i = 1 To Tables.Columns.Count ' Spalten abklappern
For j = 1 To Tables.Rows.Count 'Zeilen abklappern
sZellenText = Tables.Rows(j).Cells(i).Range.Text
Debug.Print sZellenText
Next j
Next i
Next
End Sub

Anzeige
AW: Wert aus Word-Dok auslesen
15.12.2010 16:23:16
Günther
Hallo Mark!
Vielen herzlichen Dank für Deine Antwort, aber ich glaube, da gab es ein Missverständnis?
Dein Code liest Werte aus WORD-Tabellen aus, die einfach im Word-Dokument enthalten sind.
Meine Frage bezieht sich aber darauf, wie ich Werte aus EXCEL-Tabellen auslesen kann, die als eingebettete Excel-Objekte im Word-Dokument enthalten sind. Vielleicht habe ich das nicht klar genug formuliert.
Grüße
Günther
Anzeige
;
Anzeige
Anzeige

Infobox / Tutorial

Werte aus eingebetteten Excel-Tabellen in Word-Dokumenten auslesen


Schritt-für-Schritt-Anleitung

Um Werte aus einer eingebetteten Excel-Tabelle in einem Word-Dokument auszulesen, kannst Du den folgenden VBA-Code verwenden. Dieser Code öffnet das Word-Dokument, greift auf das eingebettete Excel-Objekt zu und liest den gewünschten Wert aus.

Sub AuslesenEingebetteterExcelTabelle()
    Dim appWord As Object
    Dim doc As Object
    Dim excelObj As Object
    Dim zelle As String

    Set appWord = CreateObject("Word.Application")
    appWord.Visible = False ' Word im Hintergrund öffnen
    Set doc = appWord.Documents.Open("E:\Word\Testdok.docx") ' Pfad anpassen

    ' Hier gehe ich davon aus, dass das erste eingebettete Excel-Objekt verwendet wird
    Set excelObj = doc.InlineShapes(1).OLEFormat.Object

    ' Wert aus einer bestimmten Zelle des Excel-Objekts auslesen
    zelle = excelObj.Worksheets(1).Range("A1").Value
    Debug.Print zelle ' Ausgabe im Direktfenster

    ' Dokument und Word schließen
    doc.Close SaveChanges:=False
    appWord.Quit

    Set excelObj = Nothing
    Set doc = Nothing
    Set appWord = Nothing
End Sub

Dieser Code öffnet das Dokument, greift auf das erste eingebettete Excel-Objekt zu und liest den Wert der Zelle A1 aus. Du kannst die Zelle entsprechend anpassen, um andere Werte auszulesen.


Häufige Fehler und Lösungen

  1. Word-Fenster bleibt offen: Wenn das Word-Fenster nach dem Ausführen des Makros offen bleibt, stelle sicher, dass Du die Quit-Methode korrekt verwendest und das Dokument mit SaveChanges:=False schließt.

  2. Zugriffsfehler auf die Excel-Tabelle: Achte darauf, dass das Word-Dokument tatsächlich ein eingebettetes Excel-Objekt enthält. Wenn Du versuchst, auf eine Zelle zuzugreifen, die nicht existiert, kann es zu einem Fehler kommen.


Alternative Methoden

Wenn Du nicht mit VBA arbeiten möchtest, kannst Du auch den folgenden Ansatz in Betracht ziehen:

  • Manuelles Kopieren: Öffne das Word-Dokument, klicke mit der rechten Maustaste auf die eingebettete Excel-Tabelle und wähle „Öffnen“. Du kannst dann die gewünschten Werte manuell kopieren und in Excel einfügen.

  • Power Query: Verwende Power Query in Excel, um Daten aus Word-Dokumenten zu importieren. Das ist zwar etwas komplexer, bietet aber eine leistungsstarke Möglichkeit, Deine Daten zu extrahieren.


Praktische Beispiele

Hier sind einige Beispiele, wie Du den oben genannten Code anpassen kannst:

  • Wert aus Zelle B2 lesen:

    zelle = excelObj.Worksheets(1).Range("B2").Value
  • Wert aus mehreren Zellen lesen: Um mehrere Zellen auszulesen, kannst Du eine Schleife verwenden:

    Dim i As Integer
    For i = 1 To 10
      Debug.Print excelObj.Worksheets(1).Cells(i, 1).Value
    Next i

Tipps für Profis

  • Fehlerbehandlung einfügen: Verwende On Error Resume Next, um mögliche Laufzeitfehler abzufangen und sicherzustellen, dass das Programm nicht abrupt stoppt.

  • Code optimieren: Wenn Du häufig auf Excel-Tabellen in Word zugreifen musst, überlege, die Funktionalität in ein separates Modul zu packen, um den Code wiederverwendbar zu machen.


FAQ: Häufige Fragen

1. Kann ich mehrere Excel-Objekte in einer Word-Datei auslesen? Ja, Du kannst die Schleife über doc.InlineShapes verwenden, um auf jedes eingebettete Excel-Objekt zuzugreifen.

2. Funktioniert dieser Code in allen Excel-Versionen? Der VBA-Code sollte in den meisten modernen Excel-Versionen funktionieren, solange die Word-Objektbibliothek verfügbar ist.

Beliebteste Forumthreads (12 Monate)

Anzeige
Anzeige
Entdecke mehr
Finde genau, was du suchst

Die erweiterte Suchfunktion hilft dir, gezielt die besten Antworten zu finden

Suche nach den besten Antworten
Unsere beliebtesten Threads

Entdecke unsere meistgeklickten Beiträge in der Google Suche

Top 100 Threads jetzt ansehen
Anzeige