VBA FileDialog

Excel VBA FileDialog

In VBA ist fieldialog eine Eigenschaft, die zur Darstellung verschiedener Instanzen verwendet wird. In fileialog gibt es vier verschiedene Arten von Konstanten, die als msofiledialogfilepicker bezeichnet werden und zum Auswählen einer Datei aus einem bestimmten Pfad verwendet werden Ein Ordner und der dritte ist msofiledialog open, um eine Datei zu öffnen, und der letzte ist msofiledialogsaveas, mit dem eine Datei als neue Datei gespeichert wird.

Unter bestimmten Umständen möchten wir, dass die Daten aus einer anderen Datei oder einem anderen Arbeitsblatt stammen. Da VBA zur Automatisierung unserer Arbeit verwendet wird, können wir mithilfe von VBA verschiedene andere Dateien öffnen. Dies erfolgt über den Filedialog, den coolen Teil der Verwendung Methode ist, dass wir nicht den Pfad zum Code angeben müssen, sondern den Benutzer bitten, die Datei zu durchsuchen.

Im Rahmen des VBA-Projekts müssen wir möglicherweise andere Arbeitsmappen öffnen und eine Aufgabe mit ihnen ausführen. In unserem früheren Artikel „VBA Workbook.Open“ haben wir gezeigt, wie Dateien mit einem bestimmten Pfad und einer bestimmten Datei geöffnet werden. Dort mussten wir den Ordnerpfad und den Dateinamen mit seiner Erweiterung angeben. Was aber, wenn ein Benutzer jedes Mal die verschiedenen Dateien aus den verschiedenen Ordnern auswählen muss? Hier kommt die Option „FileDialog“ ins Spiel.

Wie funktioniert die VBA FileDialog Option?

"Wenn Sie den genauen Pfad nicht kennen, findet FileDialog die Datei und wählt sie aus." Anstatt die Pfadadresse und den Dateinamen zu erwähnen, können wir ein Dialogfeld zum Öffnen von Dateien separat anzeigen, um die Datei aus einem beliebigen Ordner des Computers auszuwählen.

Sie können diese VBA FileDialog Excel-Vorlage hier herunterladen - VBA FileDialog Excel-Vorlage

"FileDialog" ist ein Objekt in VBA. Um diese Option zuerst zu verwenden, müssen wir die Variable als FileDialog definieren.

Sobald die Variable als "FileDialog" deklariert ist, handelt es sich um eine Objektvariable. Um dies zu verwenden, müssen wir das Objekt mithilfe von Application.FileDialog festlegen.

Wie wir im obigen Bild sehen können, hat FileDialog vier Optionen.

  • msoFileDialogFilePicker: Diese Option öffnet das Dateiauswahlfenster vor dem Benutzer, um die gewünschte Datei nach seinen Wünschen auszuwählen.
  • msoFileDialogFolderPicker: Diese Option öffnet das Dialogfeld oder Fenster vor dem Benutzer, um den Ordner auszuwählen.
  • msoFileDialogOpen: Hiermit kann der Benutzer die ausgewählte Datei aus dem Ordner öffnen.
  • msoFileDialogSaveAs: Dadurch kann der Benutzer die Datei als andere Kopie speichern.

Ab sofort habe ich die Option msoFileDialogFilePicker ausgewählt.

Jetzt müssen wir das Dialogfeld entwerfen, das vor uns erscheint.

Mit With Statement können wir das Dialogfeld gestalten.

Fügen Sie in die with-Anweisung einen Punkt ein, um die IntelliSense-Liste der Eigenschaften und Methoden der FileDialog-Option anzuzeigen.

Um beim Öffnen des Dateidialogfelds nur die Excel-Dateien anzuzeigen, müssen Sie zunächst alle angewendeten Filter entfernen.

Jetzt müssen wir einen neuen Filter als "Excel-Dateien" mit Platzhaltererweiterung der Excel-Dateien anwenden.

Ändern wir nun den Titel des Dateidialogfelds.

Wir können dem Benutzer erlauben, jeweils nur eine Datei auszuwählen, oder wir können ihm auch erlauben, mehrere Dateien auszuwählen. Dazu müssen wir "Mehrfachauswahl zulassen" verwenden.

Wir haben hier zwei Möglichkeiten. Wenn TRUE ausgewählt ist, kann der Benutzer mehrere Dateien auswählen, wenn der FALSE-Benutzer jeweils nur eine Datei auswählen kann.

Eine andere Sache, die wir mit FileDialog entwerfen können, ist, dass wir tatsächlich darauf bestehen können, welcher Standardordner sein soll, wenn das Dateidialogfeld angezeigt wird. Verwenden Sie dazu den ursprünglichen Dateinamen.

Dazu müssen wir den Standardordner angeben, dessen Adresspfad geöffnet werden soll.

Jetzt müssen wir endlich die "Show" -Methode anwenden, um das Dateidialogfeld zu sehen.

Code:

Sub DoEvents_Example1 () Myfile als FileDialog dimmen Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Mit Myfile .Filters.Clear .Filters.Add "Excel-Dateien", "* .xlsx?", 1 .Title = "Wählen Sie Ihre Excel-Datei! ! " .AllowMultiSelect = False .InitialFileName = "D: \ Excel-Dateien". Show End With End Sub

Führen Sie nun den VBA-Code aus, um das Ergebnis anzuzeigen.

Wie wir in der obigen Bilddatei sehen können, hat das Dialogfeld den genannten Ordner standardmäßig geöffnet.

Jetzt können wir einen beliebigen Unterordner auswählen und die Excel-Dateien auswählen.

Sehen Sie sich das obige Bild an, da wir den Filterparameter nur als "Excel-Dateien" angewendet haben.

Dadurch wird nur die Datei aus dem genannten Ordner ausgewählt. Um den vollständigen Pfad zu speichern, müssen wir eine weitere Variable als Zeichenfolge deklarieren.

Wählen Sie nun in der with-Anweisung "SelectedItems". Weisen Sie der neu definierten Variablen den Pfad des ausgewählten Elementordners zu.

Zeigen Sie nun endlich den ausgewählten Ordnerpfad im VBA-Meldungsfeld an.

Jetzt werde ich das Programm ausführen, um das Dialogfeld zu sehen.

Jetzt habe ich den Dateinamen als „1. Charts.xlsx “im Unterordner„ Charts “. Wenn ich auf OK klicke, wird der vollständige Ordnerpfad im Meldungsfeld angezeigt.

So können wir die Option FileDialog verwenden, um die Dateien aus dem Ordner in Excel auszuwählen. Verwenden Sie den folgenden Code, um die Dateien auszuwählen.

Code:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) Dim FileAddress As String With Myfile .Filters.Clear .Filters.Add "Excel Files", "* .xlsx?", 1 .Title = "Choose Your Excel-Datei!!!" .AllowMultiSelect = False .InitialFileName = "D: \ Excel-Dateien" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub