Anzeige
Anzeige
HERBERS
Excel-Forum (Archiv)
20+ Jahre Excel-Kompetenz: Von Anwendern, für Anwender
Inhaltsverzeichnis

Word Tabelle auslesen

Forumthread: Word Tabelle auslesen

Word Tabelle auslesen
19.04.2015 21:51:43
go too

Hallo zusammen,
ich möchte gerne per VBA aus einer Word Datei eine Tabelle auslesen.
Und jetzt kommt's - das Auslesen soll erst ab Zeile 2 erfolgen.
Ich bekomm es aber nicht hin. Wenn ich folgende Zeile erweiter(fett), dann hängt sich Excel auf, deshalb leider keine Fehlermeldung.
Set tb = appWord.ActiveDocument.Tables(1).Cell(2, 1).Range.Text
Hier mal der funktionierende Code der ab Zeile 1 ausliest.


Private Sub Bt_DatenAusDB_Click()
Dim appWord As Word.Application
Dim i As Integer, k As Integer
Dim tb As Word.Table
Dim tx As String
ThisWorkbook.Worksheets("Tabelle1").Activate
' Anwendung Word starten
Set appWord = CreateObject("Word.Application")
' Word-Dokument öffnen
appWord.Documents.Open ThisWorkbook.Path & "\LH Datenquelle.doc"
' Erste Tabelle zuweisen
Set tb = appWord.ActiveDocument.Tables(1)
For i = 1 To tb.Rows.Count
For k = 1 To tb.Columns.Count
' Text einer Tabellenzelle inkl. Zellenende
tx = tb.Cell(i, k).Range.Text
' Zellenende löschen, Text in Zelle schreiben
Cells(i, k).Value = Left(tx, Len(tx) - 2)
Next k
Next i
' Anwendung Word beenden
appWord.Quit
End Sub

Anzeige

6
Beiträge zum Forumthread
Beiträge zu diesem Forumthread

Betreff
Datum
Anwender
Anzeige
AW: Word Tabelle auslesen
19.04.2015 21:58:55
Luschi
Hallo go too,
Du mußt diese Vba-Zeile ändern:
statt: For i = 1 To tb.Rows.Count
so   : For i = 2 To tb.Rows.Count
Gruß von Luschi
aus klein-Paris

AW: Word Tabelle auslesen
19.04.2015 22:04:32
go too
Ja, aber dann werden in Excel die Daten ebenfall in Zweile 2 übertragen. :-(

AW: Word Tabelle auslesen
19.04.2015 22:15:30
Alexander
Hallo,
du kannst dann aber
' Zellenende löschen, Text in Zelle schreiben
Cells(i, k).Value = Left(tx, Len(tx) - 2)
in
' Zellenende löschen, Text in Zelle schreiben
Cells(i - 1, k).Value = Left(tx, Len(tx) - 2)
ändern dann sollte es passen
Gruß
Alex

Anzeige
AW: Word Tabelle auslesen
19.04.2015 22:24:58
go too
Damit hängt er sich auf und markiert die Zeile im Code ohne Fehlermeldung.

AW: Word Tabelle auslesen
19.04.2015 22:28:16
go too
Sry - Fehler meinerseits - danke geht! :-))
Kannst Du mir noch sagen, wie ich den ersten Wert in Spalte C (und nicht A) bring?

AW: Word Tabelle auslesen
19.04.2015 22:33:16
go too
Ist wohl nicht mein Tag. Danke hat sich erledigt.

Anzeige
;

Forumthreads zu verwandten Themen

Entdecke relevante Threads

Schau dir verwandte Threads basierend auf dem aktuellen Thema an

Alle relevanten Threads mit Inhaltsvorschau entdecken
Anzeige

Infobox / Tutorial

Word Tabelle auslesen mit VBA


Schritt-für-Schritt-Anleitung

  1. Öffne Excel und erstelle ein neues Workbook oder verwende ein bestehendes.

  2. Drücke ALT + F11, um den VBA-Editor zu öffnen.

  3. Füge ein neues Modul hinzu:

    • Rechtsklick auf "VBAProject (DeinWorkbookName)" > Einfügen > Modul.
  4. Kopiere und füge folgenden Code ein:

    Private Sub Bt_DatenAusDB_Click()
       Dim appWord As Word.Application
       Dim i As Integer, k As Integer
       Dim tb As Word.Table
       Dim tx As String
    
       ThisWorkbook.Worksheets("Tabelle1").Activate
       ' Anwendung Word starten
       Set appWord = CreateObject("Word.Application")
       ' Word-Dokument öffnen
       appWord.Documents.Open ThisWorkbook.Path & "\LH Datenquelle.doc"
       ' Erste Tabelle zuweisen
       Set tb = appWord.ActiveDocument.Tables(1)
    
       ' Beginne das Auslesen ab Zeile 2
       For i = 2 To tb.Rows.Count
           For k = 1 To tb.Columns.Count
               ' Text einer Tabellenzelle inkl. Zellenende
               tx = tb.Cell(i, k).Range.Text
               ' Zellenende löschen, Text in Zelle schreiben
               Cells(i - 1, k).Value = Left(tx, Len(tx) - 2)
           Next k
       Next i
       ' Anwendung Word beenden
       appWord.Quit
    End Sub
  5. Schließe den VBA-Editor und führe das Makro aus, um die Daten aus der Word-Tabelle auszulesen.


Häufige Fehler und Lösungen

  • Problem: Excel hängt sich auf, wenn du versuchst, die Zeile zu ändern.

    • Lösung: Stelle sicher, dass die Zeile korrekt angepasst wird. Statt Cells(i, k).Value sollte Cells(i - 1, k).Value verwendet werden.
  • Problem: Daten werden nicht korrekt übertragen.

    • Lösung: Überprüfe den Code und stelle sicher, dass die Word-Tabelle die erwartete Struktur hat und die Zellen korrekt angesprochen werden.

Alternative Methoden

Wenn du die Word Daten aus Excel auslesen möchtest, kannst du auch die Power Query Funktion in Excel nutzen. Diese erlaubt es, Daten aus verschiedenen Quellen, einschließlich Word-Dokumenten, zu importieren und zu transformieren.

  1. Gehe zu Daten > Daten abrufen > Aus Datei > Aus Word-Dokument.
  2. Wähle das Dokument aus und folge den Anweisungen im Abfrage-Editor.

Praktische Beispiele

  • Beispiel 1: Auslesen einer Word-Tabelle mit 3 Spalten und mehreren Zeilen. Der oben bereitgestellte VBA-Code liest die Daten ab der zweiten Zeile und überträgt sie in Excel.

  • Beispiel 2: Wenn du den Word Text aus der Tabelle extrahieren möchtest, kannst du die Zellenwerte weiterverarbeiten, um nur bestimmte Daten zu extrahieren.


Tipps für Profis

  • Nutze Option Explicit am Anfang deines Moduls, um sicherzustellen, dass alle Variablen deklariert sind.
  • Verwende With...End With, um den Code zu optimieren und die Lesbarkeit zu verbessern. Beispiel:

    With Cells(i - 1, k)
       .Value = Left(tx, Len(tx) - 2)
    End With

FAQ: Häufige Fragen

1. Wie kann ich die erste Zeile der Word-Tabelle auslesen?
Um die erste Zeile auszulesen, ändere die Schleife auf For i = 1 To tb.Rows.Count.

2. Kann ich mehrere Word-Tabellen auslesen?
Ja, du kannst mehrere Tabellen ansprechen, indem du die Indizes in appWord.ActiveDocument.Tables(index) anpasst.

3. Funktioniert dieser Code in allen Excel-Versionen?
Ja, der Code sollte in den meisten aktuellen Excel-Versionen funktionieren, solange die VBA-Umgebung aktiviert 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