Come chiudere una cartella di lavoro di excel utilizzando vba?
Per chiudere un file Excel, è necessario utilizzare il metodo “Chiudi”. Con questo metodo puoi specificare se vuoi salvare le modifiche o meno. Inoltre, se desideri salvare e chiudere un file non ancora salvato, puoi specificare il percorso in cui desideri salvarlo prima di chiuderlo.
Ecco la sintassi del metodo close.
Workbook.Close (SaveChanges, FileName, RouteWorkbook)
Passaggi per chiudere una cartella di lavoro
- Specifica la cartella di lavoro che desideri chiudere.
- Utilizzare il metodo di chiusura con questa cartella di lavoro.
- Nel metodo del codice, indica se vuoi salvare il file o meno.
- Alla fine menziona il percorso in cui desideri salvare il file prima di chiuderlo.
In questo tutorial, esamineremo diversi modi per chiudere una cartella di lavoro in Excel utilizzando VBA.
Link utili: Esegui una macro – Registratore di macro – Visual Basic Editor – Manuale delle macro personali
Chiudi una cartella di lavoro senza salvare
Se desideri salvare la cartella di lavoro attiva senza salvare, devi utilizzare un codice come questo.
ActiveWorkbook.Close SaveChanges:=False
In questo codice ho specificato “False” per l’argomento “SaveChanges”. Pertanto VBA ignorerà se sono presenti modifiche nella cartella di lavoro che non vengono salvate. E se vuoi chiudere una cartella di lavoro specifica, puoi utilizzare il nome di quella cartella di lavoro. Proprio come il seguente codice.
Workbooks("book1").Close SaveChanges:=False
Se nella cartella di lavoro sono presenti dati e si ignora l’argomento “Salva modifiche”, Excel visualizzerà una finestra di dialogo per confermare se si desidera salvare la cartella di lavoro o meno. Il punto è questo: è meglio specificare l’argomento “SaveChanges” anche se è facoltativo.
Chiudere una cartella di lavoro dopo averla salvata
Come hai visto, nel metodo CLOSE è presente un argomento per specificare la posizione del percorso. Supponiamo che tu voglia salvare il “Libro6” nella cartella sul desktop. Ecco il codice che devi utilizzare.
Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx"
Questo codice salverà la cartella di lavoro “Book6” nella cartella salvata sul mio desktop con il nome “myFILE.xlsx”. Ma c’è una cosa di cui devi occuparti: se hai già una cartella di lavoro con lo stesso nome, quel file verrà sostituito con quello nuovo.
Non preoccuparti, c’è una soluzione che puoi usare. Il codice seguente controlla se esiste un file con il nome che desideri utilizzare
Sub vba_close_workbook() Dim wbCheck As String wbCheck = Dir("C:UsersDellDesktopmyFoldermyFile.xlsx") If wbCheck = "" Then Workbooks("Book6").Close _ SaveChanges:=True, _ Filename:="C:UsersDellDesktopmyFoldermyFile.xlsx" Else MsgBox "Error! Name already used." End If End Sub