Diàleg de fitxers VBA | Com obrir FilesDialog Box mitjançant el codi VBA?

Diàleg de fitxers VBA d'Excel

A VBA fieldialog és una propietat que s’utilitza per representar diferents instàncies, a archiveialog hi ha quatre tipus diferents de constants que es coneixen com a msofiledialogfilepicker que s’utilitza per seleccionar un fitxer d’un camí donat; una carpeta i el tercer és msofiledialog obert per obrir un fitxer i l'últim és msofiledialogsaveas que s'utilitza per desar un fitxer com a fitxer nou.

Hi ha certes circumstàncies en què volem que les dades de qualsevol altre fitxer o de qualsevol altre full de càlcul i com que VBA s’utilitza per automatitzar el nostre treball, podem obrir altres fitxers amb VBA i es fa mitjançant el Filedialog, la part més interessant d’utilitzar-lo. El mètode és que no necessitem proporcionar el camí cap al codi, sinó que demanem a l'usuari que busqui el fitxer.

Com a part del projecte VBA, és possible que necessitem obrir altres llibres de treball i executar algun tipus de tasca amb ells. En el nostre article anterior de VBA Workbook.Open, hem mostrat com obrir fitxers amb un camí d'accés i un fitxer específics. Allà, havíem de proporcionar el camí de la carpeta i el nom del fitxer amb la seva extensió. Però, què passa si cada vegada que un usuari ha de seleccionar els diferents fitxers de les diferents carpetes. Aquí és on apareix l'opció "FileDialog".

Com funciona l'opció VBA FileDialog?

"Si no coneixeu la ruta exacta, FileDialog el trobarà i el seleccionarà". En lloc d’esmentar l’adreça del camí i el nom del fitxer, podem presentar una finestra de diàleg d’obertura de fitxer per separat per seleccionar el fitxer de qualsevol carpeta de l’ordinador.

Podeu descarregar aquesta plantilla VBA FileDialog Excel aquí: plantilla VBA FileDialog Excel

"FileDialog" és un objecte a VBA. Per utilitzar aquesta opció primer hem de definir la variable com a FileDialog.

Un cop declarada la variable com a "FileDialog", es tracta d'una variable objecte. Per començar a utilitzar-lo, hem de configurar l’objecte mitjançant Application.FileDialog.

Com podem veure a la imatge anterior, FileDialog té quatre opcions.

  • msoFileDialogFilePicker: Aquesta opció obre la finestra del selector de fitxers davant de l'usuari per seleccionar el fitxer desitjat segons el seu desig.
  • msoFileDialogFolderPicker: Aquesta opció obre el quadre de diàleg o la finestra davant de l'usuari per seleccionar la carpeta.
  • msoFileDialogOpen: Això permetrà a l’usuari obrir el fitxer seleccionat des de la carpeta.
  • msoFileDialogSaveAs: Això permetrà a l’usuari desar el fitxer com una còpia diferent.

A hores d’ara he seleccionat l’opció de msoFileDialogFilePicker.

Ara hem de dissenyar el quadre de diàleg que apareix al nostre davant.

Utilitzant With Statement podem dissenyar el quadre de diàleg.

Dins de la declaració, poseu un punt per veure la llista IntelliSense de les propietats i mètodes de l'opció FileDialog.

Per veure només els fitxers Excel quan s’obre el quadre de diàleg de fitxers, primer hem d’eliminar qualsevol dels filtres aplicats.

Ara hem d'aplicar un filtre nou com a "Fitxers Excel" amb extensió comodí dels fitxers Excel.

Ara canviem el títol del quadre de diàleg del fitxer.

Podem permetre a l’usuari seleccionar només un fitxer alhora o també podem seleccionar-ne diversos. Per a això, hem d'utilitzar "Permet la selecció múltiple".

Aquí tenim dues opcions. Si se selecciona TRUE, permetrà a l'usuari seleccionar diversos fitxers si és FALS, l'usuari només pot seleccionar un fitxer a la vegada.

Una altra cosa que podem dissenyar amb FileDialog és que podem insistir en què hauria de ser la carpeta per defecte quan aparegui el quadre de diàleg del fitxer. Per a això utilitzeu el nom del fitxer inicial.

Per a això, hem d'esmentar la carpeta per defecte que s'ha d'obrir el camí d'adreça.

Ara finalment hem d'aplicar el mètode "Mostra" per veure el quadre de diàleg de fitxers.

Codi:

 Sub DoEvents_Example1 () Atenueu el meu fitxer com a FileDialog Establir Myfile = Application.FileDialog (msoFileDialogFilePicker) amb Myfile .Filters.Clear .Filters.Add "Fitxers Excel", "* .xlsx?", 1 .Title = "Trieu el vostre fitxer d'Excel !! " .AllowMultiSelect = False .InitialFileName = "D: \ Fitxers Excel" .Mostra Finalitzar amb finalització secundària 

Ara executeu el codi VBA per veure el resultat.

Com podem veure a la caixa de diàleg del fitxer d'imatges anterior, s'ha obert la carpeta esmentada per defecte.

Ara podem seleccionar qualsevol subcarpeta i seleccionar els fitxers Excel.

Mireu la imatge anterior perquè hem aplicat el paràmetre de filtre només com a "Fitxers Excel".

Això només seleccionarà el fitxer de la carpeta esmentada. Per emmagatzemar el camí complet, hem de declarar una variable més com una cadena.

Ara dins de la sentència with, seleccioneu "SelectedItems". Assigneu el camí de la carpeta d'elements seleccionats a la variable acabada de definir.

Ara, finalment, mostreu el camí de la carpeta seleccionada al quadre de missatges VBA.

Ara executaré el programa per veure el quadre de diàleg.

Ara he seleccionat el nom del fitxer com a “1. Charts.xlsx ”a la subcarpeta“ Gràfics ”. Si faig clic a D'acord, podem veure el camí complet de la carpeta al quadre de missatges.

Així, així, podem utilitzar l’opció FileDialog per seleccionar els fitxers de la carpeta a Excel. Utilitzeu el codi següent per seleccionar els fitxers.

Codi:

 Sub DoEvents_Example1 () Atenua el meu fitxer com a FileDialog Defineix Myfile = Application.FileDialog (msoFileDialogFilePicker) Enumera l'adreça de fitxer com a cadena amb MyFile .Filters.Clear .Filters.Add "Fitxers Excel", "* .xlsx?", 1. Title = "Trieu el vostre fitxer Fitxer Excel !!! " .AllowMultiSelect = False .InitialFileName = "D: \ Fitxers Excel" .Show FileAddress = .SelectedItems (1) Acaba amb MsgBox FileAddress End Sub