Acest tutorial VBA prezintă modul de salvare a unui fișier utilizând comenzile Salvare și Salvare ca în VBA.
Salvați registrul de lucru - VBA
Comanda Salvare VBA salvează un fișier Excel similar cu apăsarea pictogramei Salvare sau folosirea comenzii rapide Salvare (CTRL + S).
Salvați un registru de lucru specificat
Pentru a salva un registru de lucru, consultați obiectul registrului de lucru și utilizați comanda Salvare.
1 | Cărți de lucru („savefile.xlsm”) |
Salvați registrul de lucru activ
Notă: Acesta este registrul de lucru activ curent din cu în codul VBA, care este diferit de ThisWorkbook care conține codul de rulare.
Salvați registrul de lucru unde este stocat codul
Salvați toate registrele de lucru deschise
Aceasta va parcurge toate registrele de lucru deschise, salvându-le pe fiecare.
12345 | Dim wb ca registru de lucruPentru fiecare wb din Application.Workbookswb.SalvațiUrmătorul wb |
Salvați toate registrele de lucru deschise care nu au fost deschise ReadOnly
Notă: deschiderea unui registru de lucru în modul ReadOnly împiedică salvarea fișierului.
Pentru a salva fișierul, va trebui să utilizați Salvare ca și să salvați fișierul cu un alt nume.
1234567 | Dim wb ca registru de lucruPentru fiecare wb din Application.WorkbooksDacă nu wb ReadOnly atunciwb.SalvațiÎncheie dacăUrmătorul wb |
Salvați un registru de lucru definit de o variabilă
Aceasta va salva un registru de lucru care a fost atribuit unei variabile obiect de registru de lucru.
1234 | Dim wb ca registru de lucruset wb = registre de lucru („savefile.xlsm”)wb.save |
Salvați un registru de lucru definit de o variabilă șir
Aceasta va salva un registru de lucru cu numele care a fost salvat într-o variabilă șir.
1234 | Dim wbstring ca șirwbstring = "savefile.xlsm"registre de lucru (wbstring) .save |
Salvați un registru de lucru definit de ordinea în care a fost deschis.
Notă: primul registru de lucru deschis ar avea 1, al doilea 2 etc.
1 | registre de lucru (1) .salvați |
Salvați un registru de lucru pe baza unei valori de celulă
Acest lucru va salva un registru de lucru cu un nume care se găsește într-o valoare de celulă.
1234 | Dim wbstring ca șirwbstring = activeworkbook.sheets ("sheet1"). range ("wb_save"). valoareregistre de lucru (wbstring) .salvați |
Salvați ca - VBA
Comanda VBA Save As salvează un fișier Excel ca fișier nou, similar cu apăsarea pictogramei Save As sau folosirea comenzii rapide Save As (Alt> F> A).
Mai sus, am identificat toate modalitățile de a specifica ce registru de lucru să salvați. Puteți utiliza exact aceleași metode pentru a identifica registrele de lucru atunci când utilizați Salvare ca.
Salvare ca se comportă similar cu Salvare, cu excepția faptului că trebuie să specificați și numele noului fișier.
De fapt, Salvați ca are multe variabile potențiale de definit:
Sintaxa SaveAs:
123 | obiect de registru de lucru .SaveAs (FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru, TextCodepage, TextVisualLayout, Local) |
O descriere completă a tuturor argumentelor SaveAs este inclusă mai jos. Deocamdată ne vom concentra asupra celor mai frecvente exemple.
Notă: Aceste argumente pot fi introduse ca șir cu paranteză sau ca variabile definite.
Salvați ca exemple de sintaxă:
Cartea de lucru Salvare ca - Același director
1 | ActiveWorkbook.SaveAs Filename: = "nou" |
sau
1 | ActiveWorkbook.SaveAs "nou" |
sau
1234 | Dim wbstring ca șirwbstring = "nou"ActiveWorkbook.SaveAs Filename: = wbstring |
Carte de lucru Salvați ca - Director nou
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new" |
sau
1234 | Dim wbstring ca șirwbstring = "C: \ new"ActiveWorkbook.SaveAs Filename: = wbstring = |
Cartea de lucru Salvați ca - Director nou, specificați extensia fișierului
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx" |
sau
1234 | Dim wbstring ca șirwbstring = "C: \ new.xlsx"ActiveWorkbook.SaveAs Filename: = wbstring |
Cartea de lucru Salvați ca - Director nou, specificați extensia fișierului - Metoda Alt
De asemenea, puteți specifica formatul de fișier în propriul argument.
1234 | .xlsx = 51 '(52 pentru Mac).xlsm = 52 '(53 pentru Mac).xlsb = 50 '(51 pentru Mac).xls = 56 '(57 pentru Mac) |
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new", FileFormat: = 51 |
Carte de lucru Salvare ca - Adăugați parolă pentru a deschide fișierul
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", Parolă: = "parolă" |
Carte de lucru Salvare ca - Adăugați parolă pentru privilegii de scriere
Dacă nu este furnizată parola corectă, atunci registrul de lucru se deschide ca numai în citire
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", WriteRes: = "parolă" |
Caiet de lucru Salvați ca - Recomandat numai pentru citire
ADEVĂRAT pentru a afișa o casetă de mesaj, recomandând ca fișierul să fie deschis doar în citire.
1 | ActiveWorkbook.SaveAs Filename: = "C: \ new.xlsx", ReadOnlyRecommended: = TRUE |
Alte Salvare ca exemple
Creați caseta de dialog Salvare ca
Aceasta generează caseta de dialog Salvare ca, solicitând utilizatorului să salveze fișierul.
Rețineți că este posibil ca acest cod simplu să nu fie adecvat în toate cazurile.
1 | Application.GetSaveAsFilename |
Creați caseta de dialog Salvare ca cu numele de fișier implicit furnizat
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Creați caseta de dialog Salvare ca cu numele de fișier implicit furnizat
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Creați și salvați un registru de lucru nou
Aceasta va crea un nou registru de lucru și îl va salva imediat.
123456 | Dim wb Ca registru de lucruSetați wb = Workbooks.AddApplication.DisplayAlerts = Falswb.SaveAs Filename: = ”c: \ Test1.xlsx”Application.DisplayAlerts = Adevărat |
Dezactivați salvarea alertelor
Pe măsură ce lucrați la salvarea în VBA, puteți întâlni diverse avertismente sau promisiuni de salvare. Pentru a dezactiva avertismentele, adăugați această linie de cod:
1 | Application.DisplayAlerts = Fals |
și pentru a reactiva alerte:
1 | Application.DisplayAlerts = Adevărat |