Utilizzando Finestra di dialogo per l’apertura e il salvataggio della cartella di lavoro
Sappiamo già come aprire o salvare un file Excel in VBA. Usiamo semplicemente il metodo Open e SaveAs dell’oggetto Workbook. Ma ciò richiede l’hard-coding del percorso del file. Ma la maggior parte delle volte si desidera che l’utente finale selezioni un file utilizzando la GUI o dica Apri file o Salva con nome Finestra di dialogo che consente all’utente di scegliere la posizione del file visivamente e facilmente.
In questo articolo, copriamo il codice utilizzato per visualizzare la finestra di dialogo aperta della cartella di lavoro e salva come finestra di dialogo.
Ho allegato una cartella di lavoro che puoi scaricare. La cartella di lavoro allegata a questo articolo contiene tre macro === Codice VBA per aprire il file utilizzando la finestra di dialogo Apri file In questo codice, utilizzeremo il metodo dell’applicazione GetOpenFilename. La sintassi del metodo GetOpenFilename è:
_Application.GetOpenFilename ([FileFilter], [FilterIndex], [Title], [ButtonText], [MultiSelect]) _ [FileFilter]: È possibile definire di mostrare solo un tipo di file nella cartella selezionata. Se scrivi “File Excel, .xlsx, .xls, * .xlsm” ecc.
quindi solo i file excel verranno visualizzati dalla cartella nella finestra di dialogo di apertura del file.
[FilterIndex]: * È il numero di filtri di file che desideri utilizzare.
[Titolo]: il titolo della finestra di dialogo.
[ButtonText]: * Per specificare il testo del pulsante. Non importante.
[MultiSelect]: è una variabile booleana. Se imposti True o 1, sarai in grado di selezionare più di un file. Se lo imposti su falso, puoi selezionare solo un file.
Basta con la teoria. Facciamo alcuni incantesimi.
Codice VBA per aprire un file alla volta
Option Explicit Sub OpenOneFile() Dim FileName As Variant 'Displaying the open file dialog box FileName = Application.GetOpenFilename("Excel-files,*.xls", _ 1, "Select One File To Open", , False) 'User didn't select a file If TypeName(FileName) = "Boolean" Then Exit Sub 'Open the workbook Workbooks.Open FileName End Sub
Come funziona?
Quando si esegue questo segmento di codice, il metodo GetOpenFilename per l’oggetto Application aprirà una finestra di dialogo Apri file. Il titolo della finestra di dialogo sarà “Seleziona un file da aprire” come definito nel codice.
Se selezioni un file, verrà eseguito il codice Worbook.Open e il file verrà aperto. Se non selezioni un file, il sottotitolo uscirà senza eseguire il codice Workbook.Open.
Codice VBA per aprire uno o più file alla volta Questo segmento di codice aprirà la finestra di dialogo di apertura del file ma sarà possibile selezionare più di un file alla volta.
Sub OpenMultipleFiles() Dim FileName As Variant, f As Integer 'Displaying the open file dialog box FileName = Application.GetOpenFilename("Excel-files,*.xlsx", _ 1, "Select One Or More Files To Open", , True) 'User didn't select a file If TypeName(FileName) = "Boolean" Then Exit Sub 'Open all the workbooks selected by user For f = 1 To UBound(FileName) Workbooks.Open FileName(f) Next f End Sub
Nota che qui abbiamo impostato la variabile multiselect su True. Ciò consentirà la selezione multipla del file.
Codice VBA per aprire la finestra di dialogo Salva con nome Per aprire una finestra di dialogo Salva con nome utilizzeremo il metodo GetSaveAsFilename dell’oggetto Application. La sintassi del metodo è:
_Application.GetSaveAsFilename ([InitialFileName], [FileFilter], [FilterIndex], [Title], [ButtonText]) _ [InitialFileName]: * Il nome del file iniziale. Se non rinomini il file durante il salvataggio, il file verrà salvato con questo nome.
[FileFilter]: è possibile definire di mostrare solo un tipo di file nella cartella selezionata. Se scrivi “File Excel, .xlsx, .xls, * .xlsm” ecc.
quindi solo i file excel verranno visualizzati dalla cartella nella finestra di dialogo Apri file.
[FilterIndex]: l’indice del filtro del file.
[Titolo]: * Il titolo della finestra di dialogo.
[ButtonText]: * Viene utilizzato nel sistema Mac per modificare il nome del pulsante.
Segui sotto per il codice
Sub SaveFile() Dim FileName As Variant 'Displaying the saveas dialog box FileName = Application.GetSaveAsFilename("MyFileName.xls", _ "Excel files,*.xls", 1, "Select your folder and filename") 'User didn't save a file If TypeName(FileName) = "Boolean" Then Exit Sub 'Save the workbook ActiveWorkbook.SaveAs FileName End Sub
SaveFile Macro utilizza il metodo GetSaveAsFilename dell’oggetto Application per aprire la finestra di dialogo Salva con nome, assegnare il nome del file e selezionare la posizione in cui salvare la cartella di lavoro.
Quindi sì ragazzi, è così che puoi usare la finestra di dialogo per aprire e salvare i file usando VBA. Spero sia stato utile. In caso di dubbi su questo articolo o su qualsiasi altro argomento VBA, chiedere nella sezione commenti qui sotto.
Articoli correlati:
`link: / import-and-export-in-vba-use-a-closed-workbook-as-a-database-dao-using-vba-in-microsoft-excel [Usa una cartella di lavoro chiusa come database (DAO) utilizzando VBA in Microsoft Excel] `| Per utilizzare una cartella di lavoro chiusa come database con connessione DAO, utilizzare questo frammento di codice VBA in Excel.
`link: / import-and-export-in-vba-use-a-closed-workbook-as-a-database-ado-using-vba-in-microsoft-excel [Usa una cartella di lavoro chiusa come database (ADO) utilizzando VBA in Microsoft Excel] `| Per utilizzare una cartella di lavoro chiusa come database con connessione ADO, utilizzare questo frammento di codice VBA in Excel.
link: / applications-word-outlook-in-vba-get-started-with-excel-vba-userforms [Primi passi con Excel VBA UserForms]
| * Per inserire dati nel database, usiamo moduli. Gli Excel UserForms sono utili per ottenere informazioni dall’utente. Ecco come dovresti iniziare con i moduli utente VBA.
===
`link: / user-forms-input-box-in-vba-change-the-valueecontent-of-many-userform-controls-using-vba-in-microsoft-excel [Cambia il valore / contenuto di diversi controlli UserForm utilizzando VBA in Excel] `| * Per modificare il contenuto dei controlli del modulo utente, utilizzare questo semplice frammento di codice VBA.
`link: / user-forms-input-box-in-vba-prevent-a-userform-by-closing-when-user-click-the-x-button-using-vba-in-microsoft-excel [ Impedire la chiusura di un modulo utente quando l’utente fa clic sul pulsante x utilizzando VBA in Excel] `| Per evitare che il modulo utente si chiuda quando l’utente fa clic sul pulsante x del modulo, utilizziamo l’evento UserForm_QueryClose.
Articoli popolari:
link: / keyboard-formula-shortcuts-50-excel-shortcuts-to-aumentare-la-produttività [50 scorciatoie Excel per aumentare la produttività]
| Diventa più veloce nel tuo compito. Queste 50 scorciatoie ti faranno lavorare ancora più velocemente su Excel.
link: / formule-e-funzioni-introduzione-di-vlookup-funzione [La funzione CERCA.VERT in Excel]
| Questa è una delle funzioni più utilizzate e popolari di Excel che viene utilizzata per cercare valori da diversi intervalli e fogli.
link: / tips-countif-in-microsoft-excel [COUNTIF in Excel 2016]
| Contare i valori con le condizioni utilizzando questa straordinaria funzione. Non è necessario filtrare i dati per contare un valore specifico.
La funzione Countif è essenziale per preparare la tua dashboard.
link: / excel-formula-and-function-excel-sumif-function [Come usare la funzione SUMIF in Excel]
| Questa è un’altra funzione essenziale della dashboard. Questo ti aiuta a riassumere i valori su condizioni specifiche