File di salvataggio VBA - 20 semplici esempi - Esempi di codice VBA

Questo tutorial VBA spiega come salvare un file utilizzando i comandi Salva e Salva con nome in VBA.

Salva cartella di lavoro - VBA

Il comando Salva VBA salva un file Excel in modo simile a quando si fa clic sull'icona Salva o si utilizza il collegamento Salva (CTRL + S).

Salva una cartella di lavoro specificata

Per salvare una cartella di lavoro, fare riferimento all'oggetto cartella di lavoro e utilizzare il comando Salva.

1 Cartelle di lavoro ("savefile.xlsm"). Salva

Salva la cartella di lavoro attiva

Nota: questa è la cartella di lavoro attiva corrente da con nel codice VBA, che è diversa da ThisWorkbook che contiene il codice in esecuzione.

1 ActiveWorkbook.Salva

Salva la cartella di lavoro in cui è archiviato il codice

1 ThisWorkbook.save

Salva tutte le cartelle di lavoro aperte

Questo eseguirà il ciclo di tutte le cartelle di lavoro aperte, salvandole ciascuna.

12345 Dim wb come cartella di lavoroPer ogni wb in Application.Workbookswb.Salvawb successivo

Salva tutte le cartelle di lavoro aperte che non sono state aperte in sola lettura

Nota: l'apertura di una cartella di lavoro in modalità di sola lettura impedisce il salvataggio del file.
Per salvare il file dovrai usare Salva con nome e salvare il file con un nome diverso.

1234567 Dim wb come cartella di lavoroPer ogni wb in Application.WorkbooksSe non wb ReadOnly allorawb.SalvaFinisci sewb successivo

Salva una cartella di lavoro definita da una variabile

Ciò salverà una cartella di lavoro assegnata a una variabile oggetto cartella di lavoro.

1234 Dim wb come cartella di lavoroset wb = workbooks ("savefile.xlsm")wb.salva

Salva una cartella di lavoro definita da una variabile stringa

Ciò salverà una cartella di lavoro il cui nome è stato salvato in una variabile stringa.

1234 Dim wbstring come stringawbstring = "savefile.xlsm"cartelle di lavoro (stringa wb).salva

Salva una cartella di lavoro definita dall'ordine in cui è stata aperta.

Nota: la prima cartella di lavoro aperta avrebbe 1, la seconda 2, ecc.

1 cartelle di lavoro(1).salva

Salva una cartella di lavoro in base al valore di una cella

Ciò salverà una cartella di lavoro il cui nome si trova in un valore di cella.

1234 Dim wbstring come stringawbstring = activeworkbook.sheets("sheet1").range("wb_save").valuecartelle di lavoro(wbstring).salva

Salva con nome - VBA

Il comando Salva con nome VBA salva un file Excel come nuovo file, in modo simile a fare clic sull'icona Salva con nome o utilizzare il collegamento Salva con nome (Alt > F > A).
Sopra, abbiamo identificato tutti i modi per specificare quale cartella di lavoro salvare. È possibile utilizzare esattamente gli stessi metodi per identificare le cartelle di lavoro quando si utilizza Salva con nome.

Salva con nome si comporta in modo simile a Salva, tranne per il fatto che è necessario specificare anche il nome del nuovo file.
In effetti, Salva con nome ha molte potenziali variabili da definire:

Sintassi Salva con nome:

123 oggetto cartella di lavoro .SaveAs(FileName, FileFormat, Password, WriteResPassword, _Sola letturaConsigliato, Crea backup, Modalità di accesso, Risoluzione conflitti, _AddToMru, TextCodepage, TextVisualLayout, Local)

Di seguito è inclusa una descrizione completa di tutti gli argomenti SaveAs. Per ora ci concentreremo sugli esempi più comuni.
Nota: questi argomenti possono essere immessi come stringa con parentesi o come variabili definite.

Salva come esempi di sintassi:

Cartella di lavoro Salva con nome - Stessa directory

1 ActiveWorkbook.SaveAs Nome file: = "nuovo"

o

1 ActiveWorkbook.Salva come "nuovo"

o

1234 Dim wbstring come stringawbstring = "nuovo"ActiveWorkbook.SaveAs Nome file:= wbstring

Cartella di lavoro Salva con nome - Nuova directory

1 ActiveWorkbook.SaveAs Nome file:= "C:\nuovo"

o

1234 Dim wbstring come stringawbstring = "C:\nuovo"ActiveWorkbook.SaveAs Nome file:= wbstring=

Cartella di lavoro Salva con nome - Nuova directory, specifica l'estensione del file

1 ActiveWorkbook.SaveAs Nome file:= "C:\nuovo.xlsx"

o

1234 Dim wbstring come stringawbstring = "C:\nuovo.xlsx"ActiveWorkbook.SaveAs Nome file:= wbstring

Cartella di lavoro Salva con nome - Nuova directory, specifica estensione file - Metodo Alt

Puoi anche specificare il formato del file nel suo argomento.

1234 .xlsx = 51 '(52 per Mac).xlsm = 52 '(53 per Mac).xlsb = 50 '(51 per Mac).xls = 56 '(57 per Mac)
1 ActiveWorkbook.SaveAs Filename:= "C:\new", FileFormat:= 51

Cartella di lavoro Salva con nome - Aggiungi password per aprire il file

1 ActiveWorkbook.SaveAs Nome file:= "C:\new.xlsx", Password:= "password"

Cartella di lavoro Salva con nome - Aggiungi password per i privilegi di scrittura

Se non viene fornita la password corretta, la cartella di lavoro si apre come Sola lettura

1 ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", WriteRes:= "password"

Cartella di lavoro Salva con nome - Consigliata in sola lettura

TRUE per visualizzare una finestra di messaggio, che consiglia di aprire il file in sola lettura.

1 ActiveWorkbook.SaveAs Filename:= "C:\new.xlsx", ReadOnlyRecommended:= TRUE

Altro Salva come esempi

Crea finestra di dialogo Salva con nome

Questo genera la finestra di dialogo Salva con nome, chiedendo all'utente di salvare il file.
Tieni presente che questo semplice codice potrebbe non essere appropriato in tutti i casi.

1 Application.GetSaveAsFilename

Crea finestra di dialogo Salva con nome con il nome file predefinito fornito

1 Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Crea finestra di dialogo Salva con nome con il nome file predefinito fornito

1 Application.GetSaveAsFilename InitialFilename:="test.xlsx"

Crea e salva una nuova cartella di lavoro

Questo creerà una nuova cartella di lavoro e la salverà immediatamente.

123456 Dim wb come cartella di lavoroImposta wb = Cartelle di lavoro.AggiungiApplication.DisplayAlerts = Falsewb.SaveAs Filename:="c:\Test1.xlsx"Application.DisplayAlerts = True

Disabilita gli avvisi di salvataggio

Mentre lavori con il salvataggio in VBA, potresti imbatterti in vari avvisi o prompt di salvataggio. Per disabilitare gli avvisi, aggiungi questa riga di codice:

1 Application.DisplayAlerts=False

e per riattivare gli avvisi:

1 Application.DisplayAlerts=Vero
wave wave wave wave wave