Dateien mit Application.GetOpenFileName in Excel VBA öffnen
Schritt-für-Schritt-Anleitung
Um eine Datei mit dem Dialogfenster in Excel VBA zu öffnen, kannst du die Application.GetOpenFileName
Methode verwenden. Hier ist eine einfache Schritt-für-Schritt-Anleitung, wie du dies umsetzen kannst:
-
Neues Makro erstellen: Öffne Excel und drücke ALT + F11
, um den VBA-Editor zu öffnen.
-
Ein neues Modul hinzufügen: Klicke auf Einfügen
> Modul
.
-
Code eingeben: Füge den folgenden Code in das Modul ein:
Sub Test()
Dim xFilter As String, xDatei As String
ChDrive "A:\"
ChDir "A:\20050728\"
xFilter = "Textdateien (*.txt), *.txt"
xDatei = Application.GetOpenFileName(xFilter, 1, "Datei Öffnen", "Öffnen", False)
If InStr(1, "*falsch*false*", LCase(xDatei), vbTextCompare) > 0 Then
MsgBox "Datei-Öffnen-Dialog wurde abgebrochen!", 16
Exit Sub
End If
Workbooks.OpenText Filename:= _
xDatei, Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1), Array(2, 1), _
Array(3, 1), Array(4, 1), Array(5, 1), Array(6, 2), Array(7, 2), Array(8, 1), Array(9, 1), _
Array(10, 1), Array(11, 1), Array(12, 1), Array(13, 1), Array(14, 1)), _
TrailingMinusNumbers:=True
End Sub
-
Makro ausführen: Schließe den VBA-Editor und führe das Makro über Entwicklertools
> Makros
aus.
Häufige Fehler und Lösungen
-
Fehler beim Abbrechen des Dialogs: Wenn du den Dialog abbrichst, erhältst du möglicherweise einen Fehler. Stelle sicher, dass du die Abbruchbedingung im Code korrekt implementiert hast, wie im obigen Beispiel gezeigt.
-
Dateityp wird nicht angezeigt: Wenn die Datei nicht im Dialog angezeigt wird, überprüfe den Filter. Stelle sicher, dass der Filter korrekt gesetzt ist (xFilter = "Textdateien (*.txt), *.txt"
).
Alternative Methoden
Wenn du mehrere Dateien auf einmal öffnen möchtest, kannst du die Application.GetOpenFileName
Methode mit einer Schleife kombinieren. Hier ist ein Beispiel:
Sub MehrereDateienÖffnen()
Dim xFilter As String, xDatei As Variant
xFilter = "Textdateien (*.txt), *.txt"
xDatei = Application.GetOpenFileName(xFilter, , "Dateien Öffnen", , True)
If VarType(xDatei) = vbBoolean Then
MsgBox "Datei-Öffnen-Dialog wurde abgebrochen!", 16
Exit Sub
End If
Dim i As Integer
For i = LBound(xDatei) To UBound(xDatei)
Workbooks.OpenText Filename:= _
xDatei(i), Origin:=xlWindows, _
StartRow:=1, DataType:=xlDelimited, TextQualifier:=xlDoubleQuote, _
ConsecutiveDelimiter:=False, Tab:=True, Semicolon:=False, Comma:=False _
, Space:=False, Other:=False, FieldInfo:=Array(Array(1, 1))
Next i
End Sub
Praktische Beispiele
Hier ist ein einfaches Beispiel, wie du die Application.GetOpenFileName
Methode in einer praktischen Anwendung nutzen kannst. Angenommen, du hast mehrere CSV-Dateien in einem Ordner:
- Erstelle einen neuen Ordner und füge einige CSV-Dateien hinzu.
- Verwende das obige Makro
MehrereDateienÖffnen
, um alle CSV-Dateien in Excel zu laden.
Tipps für Profis
-
Dateifilter anpassen: Du kannst den Dateifilter erweitern, um mehrere Dateitypen anzuzeigen, indem du den Filter wie folgt anpasst:
xFilter = "Textdateien (*.txt), *.txt, Excel Dateien (*.xlsx), *.xlsx"
-
Fehlermeldungen optimieren: Statt einer einfachen MessageBox kannst du eine benutzerdefinierte Fehlerbehandlung schreiben, um den Nutzern mehr Informationen zu geben.
FAQ: Häufige Fragen
1. Wie öffne ich eine Datei mit Application.GetOpenFileName
in Excel VBA?
Du kannst das Makro verwenden, das oben beschrieben wurde. Es zeigt ein Dialogfenster an, in dem du die gewünschte Datei auswählen kannst.
2. Ist es möglich, mehrere Dateien gleichzeitig zu öffnen?
Ja, mit einer kleinen Anpassung des Codes kannst du mehrere Dateien gleichzeitig auswählen und öffnen.
3. Welche Excel-Version benötige ich, um Application.GetOpenFileName
zu verwenden?
Diese Methode ist in den meisten modernen Excel-Versionen verfügbar, einschließlich Excel 2010 und später.