FileDialog VBA - Come aprire la finestra di dialogo FilesDialog utilizzando il codice VBA?

FileDialog VBA di Excel

In VBA fieldialog è una proprietà che viene utilizzata per rappresentare istanze diverse, in filedialog ci sono quattro diversi tipi di costanti che sono conosciuti come msofiledialogfilepicker che viene utilizzato per selezionare un file da un dato percorso il secondo è msofiledialogfolderpicker che il nome suggerisce è usato per scegliere una cartella e la terza è msofiledialog aperta per aprire un file e l'ultima è msofiledialogsaveas che viene utilizzata per salvare un file come nuovo file.

Ci sono determinate circostanze in cui desideriamo i dati da qualsiasi altro file o qualsiasi altro foglio di lavoro e poiché VBA viene utilizzato per automatizzare il nostro lavoro, possiamo aprire diversi altri file utilizzando VBA e viene fatto utilizzando la finestra di dialogo File, la parte interessante di utilizzare questo metodo è che non abbiamo bisogno di fornire il percorso del codice invece chiediamo all'utente di sfogliare il file.

Come parte del progetto VBA, potremmo richiedere di aprire altre cartelle di lavoro ed eseguire qualche tipo di attività con esse. In uno degli articoli precedenti, "VBA Workbook.Open", abbiamo mostrato come aprire i file con un percorso specificato e un file specifico. Lì, dovevamo fornire il percorso della cartella e il nome del file con la sua estensione. Ma cosa succede se ogni volta che un utente deve selezionare i diversi file dalle diverse cartelle. È qui che entra in gioco l'opzione "FileDialog".

Come funziona l'opzione FileDialog VBA?

"Se non conosci il percorso esatto, FileDialog troverà e selezionerà il file." Invece di menzionare l'indirizzo del percorso e il nome del file, possiamo presentare una finestra di dialogo di apertura del file separatamente per selezionare il file da qualsiasi cartella del computer.

"FileDialog" è un oggetto in VBA. Per utilizzare prima questa opzione, dobbiamo definire la variabile come FileDialog.

Una volta che la variabile è stata dichiarata come "FileDialog", è una variabile oggetto. Per iniziare a usarlo, dobbiamo impostare l'oggetto utilizzando Application.FileDialog.

Come possiamo vedere nell'immagine sopra, FileDialog ha quattro opzioni con esso.

  • msoFileDialogFilePicker: questa opzione apre la finestra di selezione dei file davanti all'utente per selezionare il file desiderato secondo i suoi desideri.
  • msoFileDialogFolderPicker: questa opzione apre la finestra di dialogo o la finestra di fronte all'utente per selezionare la cartella.
  • msoFileDialogOpen: Ciò consentirà all'utente di aprire il file selezionato dalla cartella.
  • msoFileDialogSaveAs: Ciò consentirà all'utente di salvare il file come una copia diversa.

A partire da ora, ho selezionato l'opzione di msoFileDialogFilePicker.

Ora dobbiamo progettare la finestra di dialogo che appare di fronte a noi.

Utilizzando With Statement, possiamo progettare la finestra di dialogo.

All'interno dell'istruzione con, inserire un punto per visualizzare l'elenco IntelliSense delle proprietà e dei metodi dell'opzione FileDialog.

Per vedere solo i file excel quando si apre la finestra di dialogo del file, dobbiamo prima rimuovere uno dei filtri applicati.

Ora dobbiamo applicare un nuovo filtro come "File Excel" con estensione jolly dei file Excel.

Ora cambiamo il titolo della finestra di dialogo del file.

Possiamo consentire all'utente di selezionare un solo file alla volta, oppure possiamo anche consentire loro di selezionare più file. Per questo, dobbiamo utilizzare "Consenti selezione multipla".

Abbiamo due opzioni qui. Se è selezionato TRUE, consentirà all'utente di selezionare più file. In caso affermativo, l'utente FALSE può selezionare un solo file alla volta.

Un'altra cosa che possiamo progettare con FileDialog è che possiamo effettivamente insistere su quale dovrebbe essere la cartella predefinita quando viene visualizzata la finestra di dialogo del file. Per questo utilizzo, nome file iniziale.

Per questo, dobbiamo menzionare il percorso dell'indirizzo della cartella predefinita da aprire.

Ora finalmente, dobbiamo applicare il metodo "Mostra" per vedere la finestra di dialogo del file.

Codice:

Sub DoEvents_Example1 () Dim Myfile As FileDialog Set Myfile = Application.FileDialog (msoFileDialogFilePicker) With Myfile .Filters.Clear .Filters.Add "File Excel", "* .xlsx?", 1 .Title = "Scegli il tuo file Excel !! ! " .AllowMultiSelect = False .InitialFileName = "D: File Excel" .Mostra End With End Sub

Ora esegui il codice VBA per vedere il risultato.

Come possiamo vedere nella finestra di dialogo del file immagine sopra, la cartella menzionata ha aperto per impostazione predefinita.

Ora possiamo selezionare qualsiasi sottocartella e selezionare i file excel.

Guarda l'immagine sopra perché abbiamo applicato il parametro del filtro solo come "File Excel".

Questo selezionerà semplicemente il file dalla cartella menzionata. Per memorizzare il percorso completo, dobbiamo dichiarare un'altra variabile come stringa.

Ora all'interno dell'istruzione with, seleziona "SelectedItems". Assegna il percorso della cartella degli elementi selezionati alla variabile appena definita.

Ora finalmente mostra il percorso della cartella selezionata nella finestra del messaggio VBA.

Ora eseguirò il programma per vedere la finestra di dialogo.

Ora ho selezionato il nome del file come "1. Charts.xlsx "nella sottocartella" Charts ". Se clicco su OK, possiamo vedere il percorso completo della cartella nella finestra del messaggio.

Quindi, in questo modo, possiamo usare l'opzione FileDialog per selezionare i file dalla cartella in Excel. Usa il codice seguente per selezionare i file.

Codice:

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 = "Scegli il tuo File Excel!!!" .AllowMultiSelect = False .InitialFileName = "D: File Excel" .Show FileAddress = .SelectedItems (1) End With MsgBox FileAddress End Sub

Articoli interessanti...