VBA Apri/Chiudi cartella di lavoro

In questo tutorial imparerai come utilizzare VBA per aprire e chiudere la cartella di lavoro di Excel in diversi modi.

VBA consente di aprire o chiudere i file utilizzando i metodi standard .Aprire e .Chiudere.

Se vuoi imparare come verificare se un file esiste prima di tentare di aprire il file, puoi fare clic su questo link: Esiste un file VBA

Apri una cartella di lavoro in VBA

Apri cartella di lavoro dal percorso

Se sai quale file vuoi aprire, puoi specificare il suo percorso completo nella funzione. Ecco il codice:

1 Cartelle di lavoro.Apri "C:\Cartella VBA\File di esempio 1.xlsx"

Questa riga del codice apre il file "File di esempio 1" dalla "Cartella VBA".

Apri cartella di lavoro - Cartella di lavoro attiva

Quando apri una cartella di lavoro, diventa automaticamente la cartella di lavoro attiva. Puoi fare riferimento alla cartella di lavoro appena aperta in questo modo:

1 ActiveWorkbook.Salva

Quando fai riferimento a un foglio o un intervallo e ometti il ​​nome della cartella di lavoro, VBA presumerà che ti riferisci a ActiveWorkbook:

1 Fogli("Foglio1").Nome = "Inserimento"

Apri cartella di lavoro e assegna a una variabile

Puoi anche aprire una cartella di lavoro e assegnarla direttamente a una variabile oggetto. Questa procedura aprirà una cartella di lavoro per il wb variabile e quindi salvare la cartella di lavoro.

123456 Sub OpenWorkbookToVariable()Dim wb come cartella di lavoroImposta wb = Workbooks.Open("C:\VBA Folder\Sample file 1.xlsx")wb.SalvaFine sottotitolo

L'assegnazione di cartelle di lavoro alle variabili quando si aprono è il modo migliore per tenere traccia delle cartelle di lavoro

Finestra di dialogo Apri file cartella di lavoro

È inoltre possibile attivare la finestra di dialogo Apri file della cartella di lavoro. Ciò consente all'utente di accedere a un file e aprirlo:

12345678 Sotto OpenWorkbook ()Dim strFile As StringstrFile = Application.GetOpenFilename()Cartelle di lavoro.Apri (strFile)Fine sottotitolo

Come puoi vedere nell'immagine 1, con questo approccio gli utenti possono scegliere quale file aprire. La finestra di dialogo Apri file può essere fortemente personalizzata. Puoi impostare per impostazione predefinita una determinata cartella, scegliere quali tipi di file sono visibili (es… solo xlsx) e altro ancora. Leggi il nostro tutorial sulla finestra di dialogo Apri file per esempi dettagliati.

Apri nuova cartella di lavoro

Questa riga di codice aprirà una nuova cartella di lavoro:

1 Cartelle di lavoro.Aggiungi

Apri nuova cartella di lavoro in variabile

Questa procedura aprirà una nuova cartella di lavoro, assegnandola alla variabile wb:

1234 Sotto ApriNuova cartella di lavoro()Dim wb come cartella di lavoroImposta wb = Cartelle di lavoro.AggiungiFine sottotitolo

Sintassi della cartella di lavoro aperta

Quando usi Workbooks.Open potresti notare che ci sono molte opzioni disponibili quando apri la cartella di lavoro:

Il nome del file è obbligatorio. Tutti gli altri argomenti sono facoltativi e probabilmente non avrai bisogno di conoscere la maggior parte degli altri argomenti. Ecco i due più comuni:

Apri cartella di lavoro in sola lettura

Quando la cartella di lavoro è aperta in sola lettura, non è possibile salvare sul file originale. Ciò impedisce che il file venga modificato dall'utente.

1 Cartelle di lavoro.Apri "C:\VBA Folder\Sample file 1.xlsx", , True

Apri cartella di lavoro protetta da password

Una cartella di lavoro potrebbe essere protetta da password. Usa questo codice per aprire la cartella di lavoro protetta da password:

1 Cartelle di lavoro.Apri "C:\VBA Folder\Sample file 1.xlsx", , , "password"

Apri note sulla sintassi della cartella di lavoro

Nota che nell'immagine sopra, abbiamo incluso una parentesi "(" per mostrare la sintassi. Se usi la parentesi quando lavori con Workbooks.Open, devi assegnare la cartella di lavoro a una variabile:

1234 Sotto OpenWB()Dim wb come cartella di lavoroSet wb = Workbooks.Open("C:\VBA Folder\Sample file 1.xlsx", True, True)Fine sottotitolo

Chiudi una cartella di lavoro in VBA

Chiudi cartella di lavoro specifica

Analogamente all'apertura di una cartella di lavoro, esistono diversi modi per chiudere un file. Se sai quale file vuoi chiudere, puoi usare il seguente codice:

1 Cartelle di lavoro.Chiudi ("C:\Cartella VBA\File di esempio 1.xlsx")

Questa riga di codice chiude il file "File di esempio 1" se è aperto. In caso contrario, restituirà un errore, quindi dovresti occuparti della gestione degli errori.

Chiudi cartella di lavoro attiva

Se vuoi chiudere la cartella di lavoro attualmente attiva, questa riga di codice ti consentirà di farlo:

1 ActiveWorkbook.Chiudi

Chiudi tutte le cartelle di lavoro aperte

Per chiudere tutte le cartelle di lavoro aperte, puoi semplicemente utilizzare questo codice:

1 Cartelle di lavoro.Chiudi

Chiudi la prima cartella di lavoro aperta

Questo chiuderà la prima cartella di lavoro aperta/creata:

1 Cartelle di lavoro(1).Chiudi

Sostituisci 1 con 2 per chiudere la seconda cartella di lavoro aperta/creata e così via.

Chiudi senza salvare

Questo chiuderà una cartella di lavoro senza salvare e senza mostrare la richiesta di salvataggio:

1 ActiveWorkbook.Close savechanges:=False

Salva e chiudi senza prompt

Allo stesso modo, questo salverà e chiuderà una cartella di lavoro senza mostrare il prompt di salvataggio:

1 ActiveWorkbook.Close savechanges:=True

Nota: ci sono molti altri modi per indicare se salvare o meno una cartella di lavoro e anche se mostrare o meno i prompt. Questo è discusso in modo più dettagliato qui.

Altri esempi di cartella di lavoro aperta

Apri più nuove cartelle di lavoro

Questa procedura aprirà più nuove cartelle di lavoro, assegnando le nuove cartelle di lavoro a un array:

12345678 Sub OpenMultipleNewWorkbooks()Dim arrWb(3) come cartella di lavoroDim i As IntegerPer i = da 1 a 3Imposta arrWb(i) = Cartelle di lavoro.AggiungiAvanti ioFine sottotitolo

Apri tutte le cartelle di lavoro di Excel in una cartella

Questa procedura aprirà tutte le cartelle di lavoro di Excel in una cartella, utilizzando il selettore della finestra di dialogo Apri file.

12345678910111213141516 Sub OpenMultipleWorkbooksInFolder()Dim wb come cartella di lavoroDim dlgFD As FileDialogDim strFolder As StringDim strFileName As StringImposta dlgFD = Application.FileDialog(msoFileDialogFolderPicker)Se dlgFD.Show = -1 AllorastrFolder = dlgFD.SelectedItems(1) & Application.PathSeparatorstrFileName = Dir(strFolder & "*.xls*")Do While strFileName ""Imposta wb = Workbooks.Open(strFolder & strFileName)strFileName = DirCiclo continuoFinisci seFine sottotitolo

Controlla se una cartella di lavoro è aperta

Questa procedura verificherà se una cartella di lavoro è aperta:

1234567891011 Sub TestByWorkbookName()Dim wb come cartella di lavoroPer ogni wb nelle cartelle di lavoroSe wb.Name = "Nuovo foglio di lavoro Microsoft Excel.xls" AlloraMsgBox "Trovato"Esci Sub 'chiama il codice qui, usciremo solo per oraFinisci seProssimoFine sottotitolo

Cartella di lavoro_Evento aperto

Gli eventi VBA sono "trigger" che indicano a VBA di eseguire un determinato codice. È possibile impostare eventi della cartella di lavoro per l'apertura, la chiusura, prima del salvataggio, dopo il salvataggio e altro ancora.

Leggi il nostro tutorial Workbook_Open Event per saperne di più sull'esecuzione automatica delle macro all'apertura di una cartella di lavoro.

Aiuterete lo sviluppo del sito, condividere la pagina con i tuoi amici

wave wave wave wave wave