Daten aus einer anderen Excel-Datei einlesen
Schritt-für-Schritt-Anleitung
Um Daten aus einer anderen Excel-Datei einzulesen, kannst Du den folgenden VBA-Code verwenden. Dieser Code öffnet ein Dialogfenster, in dem Du die gewünschte Datei auswählen kannst und liest anschließend die Daten aus Spalte B ab der Zeile 2 ein:
Sub import()
Dim dateiname
Dim daten(65536)
Dim i As Long, a As Long
dateiname = Application.GetOpenFilename
Application.ScreenUpdating = False
Application.DisplayAlerts = False
If dateiname <> False Then
' Datei öffnen, Meßwerte lesen und Datei schließen
Workbooks.OpenText Filename:=dateiname, Origin:= _
xlWindows, StartRow:=1, DataType:=xlDelimited, TextQualifier:= _
xlDoubleQuote, ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=True, _
Comma:=False, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), _
Array(2, 1))
a = ActiveWorkbook.Sheets(1).[b65536].End(xlUp).Row
For i = 2 To a
daten(i) = ActiveWorkbook.Sheets(1).Cells(i, 2)
Next i
Workbooks(2).Close
For i = 2 To a
ThisWorkbook.Sheets(1).Cells(i, 2) = daten(i)
Next i
End If
Application.ScreenUpdating = True
Application.DisplayAlerts = True
End Sub
Dieser Code funktioniert sowohl für .xls- als auch für .xlsx-Dateien. Achte darauf, die Excel-Datei zu speichern, bevor Du den Code ausführst.
Häufige Fehler und Lösungen
-
Daten werden nicht eingelesen: Überprüfe, ob die Datei tatsächlich Daten in Spalte B enthält. Der Code funktioniert nur, wenn in der angegebenen Spalte Werte vorhanden sind.
-
Dialogfenster öffnet sich nicht: Stelle sicher, dass Du die Makros aktiviert hast, da der Code in VBA ausgeführt wird.
-
Falsche Daten werden kopiert: Achte darauf, dass im Code die richtige Zelle referenziert wird. Prüfe die Zeilen, in denen die Daten gespeichert werden.
Alternative Methoden
Wenn Du Daten aus einer Excel-Datei importieren möchtest, ohne die Datei zu öffnen, kannst Du auch die Power Query-Funktion verwenden. Diese Methode ist besonders nützlich, wenn Du regelmäßig Daten aus den gleichen Dateien importierst.
- Gehe zu
Daten
> Daten abrufen
> Aus Datei
> Aus Arbeitsmappe
.
- Wähle die Datei aus und folge den Anweisungen zur Datenbearbeitung.
Praktische Beispiele
Beispiel 1: Übertragen der kompletten Zeile
Wenn Du die gesamte Zeile anstelle nur einer Spalte einlesen möchtest, kannst Du den Code wie folgt anpassen:
For i = 2 To a
For y = 1 To 256
daten(i, y) = ActiveWorkbook.Sheets(1).Cells(i, y)
Next y
Next i
Beispiel 2: Daten aus einer bestimmten .xlsx-Datei einlesen
dateiname = "C:\Pfad\zur\deiner\Datei.xlsx"
Workbooks.Open dateiname
Tipps für Profis
- Verwende
Option Explicit
am Anfang Deines Codes, um sicherzustellen, dass alle Variablen deklariert werden.
- Optimiere Deine Makros, indem Du die Bildschirmaktualisierung nur bei Bedarf ein- und ausschaltest.
- Dokumentiere Deinen Code ordentlich, damit Du und andere Nutzer die Funktionsweise besser nachvollziehen können.
FAQ: Häufige Fragen
1. Wie kann ich Daten aus einer .xls-Datei lesen?
Du kannst den oben genannten VBA-Code verwenden. Er unterstützt sowohl .xls- als auch .xlsx-Dateien.
2. Was mache ich, wenn die Datei einen Passwortschutz hat?
In diesem Fall musst Du die Datei zuerst manuell öffnen, da VBA nicht in der Lage ist, passwortgeschützte Dateien zu entsperren.
3. Kann ich Daten aus mehreren Dateien gleichzeitig einlesen?
Ja, Du kannst eine Schleife verwenden, um durch eine Liste von Dateinamen zu iterieren und die Daten entsprechend zu importieren.