Bestimmte Zeilen aus Word-Datei auslesen und in Excel übertragen
Schritt-für-Schritt-Anleitung
Um bestimmte Zeilen aus Word-Dateien auszulesen und in eine Excel-Tabelle zu übertragen, kannst Du das folgende VBA-Makro verwenden. Diese Anleitung basiert auf der Verwendung von MS Office 2010.
- Öffne Excel und erstelle ein neues Arbeitsblatt.
- Drücke
ALT + F11
, um den VBA-Editor zu öffnen.
- Füge ein neues Modul hinzu: Klicke mit der rechten Maustaste im Projekt-Explorer und wähle
Einfügen
-> Modul
.
- Kopiere den folgenden VBA-Code in das Modul:
'Erstellt unter MS Office 2010
Sub Hole_Wordtexte()
Dim strFileName As String
Dim objWDApp As Object 'Word.Application
Dim objDoc As Object 'Word.Document
Dim wdRange As Object ' Word.Range
Dim wks As Worksheet
Dim letztezeile
Dim varVerzeichnis
With Application.FileDialog(msoFileDialogFolderPicker)
.Title = "Bitte Verzeichnis mit den Worddateien auswählen"
If .Show = -1 Then
varVerzeichnis = .SelectedItems(1)
Else
GoTo Beenden
End If
End With
Set wks = ActiveSheet
With wks
letztezeile = .Cells(.Rows.Count, 1).End(xlUp).Row
End With
strFileName = Dir(varVerzeichnis & "\" & "*.doc")
If strFileName <> "" Then
Set objWDApp = CreateObject("Word.Application")
objWDApp.Visible = True
Else
MsgBox "Keine Worddateien im gewählten Verzeichnis"
GoTo Beenden
End If
Do Until strFileName = ""
Set objDoc = objWDApp.Documents.Open(varVerzeichnis & "\" & strFileName, ReadOnly:=True)
With wks
letztezeile = .Cells(.Rows.Count, 2).End(xlUp).Row + 1
.Cells(letztezeile, 1) = objDoc.Name
Set wdRange = objDoc.Paragraphs(3).Range '3. Absatz kopieren
wdRange.Copy
.Cells(letztezeile, 2).Select
.Paste
End With
objDoc.Close savechanges:=False
strFileName = Dir
Loop
objWDApp.Quit
Beenden:
End Sub
- Schließe den VBA-Editor und gehe zurück zu Excel.
- Führe das Makro aus: Drücke
ALT + F8
, wähle Hole_Wordtexte
aus und klicke auf Ausführen
. Wähle das Verzeichnis mit Deinen Word-Dateien aus.
Häufige Fehler und Lösungen
Alternative Methoden
Eine Alternative zum Auslesen von Daten aus Word-Dokumenten ist die Verwendung von Power Query in Excel. Damit kannst Du Daten aus verschiedenen Quellen importieren und transformieren, ohne VBA verwenden zu müssen. Dies ist besonders nützlich, wenn Du regelmäßig aktualisierte Daten benötigst.
Praktische Beispiele
Angenommen, Du hast 200 Word-Dokumente, in denen die gewünschten Daten in verschiedenen Absätzen stehen. Mit dem oben beschriebenen VBA-Code kannst Du den dritten Absatz jedes Dokuments kopieren und in eine Excel-Tabelle einfügen. Du kannst den Code anpassen, um andere Absätze zu kopieren oder spezifische Suchbegriffe zu verwenden.
Tipps für Profis
-
Verwende Variablen: Um den Code flexibler zu gestalten, könntest Du Variablen für den Absatz-Index oder den Suchtext verwenden. Dadurch kannst Du den Code einfacher anpassen, ohne ihn jedes Mal manuell zu ändern.
-
Makros optimieren: Achte darauf, dass Du den Code effizient schreibst, insbesondere wenn Du mit vielen Dokumenten arbeitest. Das Schließen von Word-Anwendungen und Dokumenten sollte immer in der richtigen Reihenfolge erfolgen.
FAQ: Häufige Fragen
1. Kann ich auch mehrere Absätze gleichzeitig kopieren?
Ja, Du kannst den Code so anpassen, dass er mehrere Absätze in einer Schleife durchläuft und diese in Excel einfügt.
2. Welche Excel-Version wird benötigt?
Das Makro wurde unter MS Office 2010 erstellt, sollte aber auch in neueren Versionen funktionieren. Stelle sicher, dass VBA in Deiner Version aktiviert ist.