VBA Save File - 20 łatwych przykładów - Przykłady kodu VBA

W tym samouczku VBA opisano, jak zapisać plik za pomocą poleceń Zapisz i Zapisz jako w VBA.

Zapisz skoroszyt - VBA

Polecenie Zapisz VBA zapisuje plik Excela podobnie jak kliknięcie ikony Zapisz lub użycie skrótu Zapisz (CTRL + S).

Zapisz określony skoroszyt

Aby zapisać skoroszyt, odwołaj się do obiektu skoroszytu i użyj polecenia Zapisz.

1 Skoroszyty("savefile.xlsm").Zapisz

Zapisz aktywny skoroszyt

Uwaga: Jest to bieżący aktywny skoroszyt z w kodzie VBA, który różni się od ThisWorkbook, który zawiera działający kod.

1 ActiveWorkbook.Zapisz

Zapisz skoroszyt, w którym przechowywany jest kod

1 ThisWorkbook.save

Zapisz wszystkie otwarte skoroszyty

Spowoduje to przejście przez wszystkie otwarte skoroszyty, zapisując każdy z nich.

12345 Dim wb jako skoroszytDla każdego wb In Application.Workbookswb.ZapiszNastępny wb

Zapisz wszystkie otwarte skoroszyty, które nie zostały otwarte tylko do odczytu

Uwaga: otwarcie skoroszytu w trybie tylko do odczytu uniemożliwia zapisanie pliku.
Aby zapisać plik, musisz użyć opcji Zapisz jako i zapisać plik pod inną nazwą.

1234567 Dim wb jako skoroszytDla każdego wb In Application.WorkbooksJeśli nie wb Tylko do odczytu, towb.ZapiszZakończ, jeśliNastępny wb

Zapisz skoroszyt zdefiniowany przez zmienną

Spowoduje to zapisanie skoroszytu, który został przypisany do zmiennej obiektu skoroszytu.

1234 Dim wb jako skoroszytset wb = skoroszyty("savefile.xlsm")wb.zapisz

Zapisz skoroszyt zdefiniowany przez zmienną łańcuchową

Spowoduje to zapisanie skoroszytu, którego nazwa została zapisana w zmiennej ciągu.

1234 Dim wbstring jako ciągwbstring = "zapisz plik.xlsm"skoroszyty(wbstring).save

Zapisz skoroszyt zdefiniowany na podstawie kolejności, w której został otwarty.

Uwaga: Pierwszy otwarty skoroszyt miałby 1, drugi 2 itd.

1 skoroszyty(1).zapisz

Zapisz skoroszyt na podstawie wartości komórki

Spowoduje to zapisanie skoroszytu, którego nazwa znajduje się w wartości komórki.

1234 Dim wbstring jako ciągwbstring = activeworkbook.sheets("arkusz1").range("wb_save").valueskoroszyty(wbstring).save

Zapisz jako - VBA

Polecenie VBA Zapisz jako zapisuje plik Excela jako nowy plik, podobnie jak kliknięcie ikony Zapisz jako lub użycie skrótu Zapisz jako (Alt > F > A).
Powyżej zidentyfikowaliśmy wszystkie sposoby określenia skoroszytu do zapisania. Możesz użyć tych samych metod do identyfikowania skoroszytów podczas korzystania z funkcji Zapisz jako.

Zapisz jako działa podobnie do Zapisz, z tą różnicą, że musisz również podać nazwę nowego pliku.
W rzeczywistości funkcja Zapisz jako ma wiele potencjalnych zmiennych do zdefiniowania:

Zapisz jako składnię:

123 obiekt skoroszytu .SaveAs(FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru, TextCodepage, TextVisualLayout, Local)

Pełny opis wszystkich argumentów SaveAs znajduje się poniżej. Na razie skupimy się na najczęstszych przykładach.
Uwaga: Te argumenty można wprowadzić jako ciąg znaków z nawiasami lub jako zdefiniowane zmienne.

Zapisz jako przykłady składni:

Skoroszyt Zapisz jako - ten sam katalog

1 ActiveWorkbook.SaveAs Filename:= "nowy"

lub

1 ActiveWorkbook.SaveAs "nowy"

lub

1234 Dim wbstring jako ciągwbstring = "nowy"ActiveWorkbook.SaveAs Nazwa pliku:= wbstring

Skoroszyt Zapisz jako - nowy katalog

1 ActiveWorkbook.SaveAs Filename:= "C:\nowy"

lub

1234 Dim wbstring jako ciągwbstring = "C:\nowy"ActiveWorkbook.SaveAs Filename:= wbstring=

Skoroszyt Zapisz jako - nowy katalog, określ rozszerzenie pliku

1 ActiveWorkbook.SaveAs Filename:= "C:\nowy.xlsx"

lub

1234 Dim wbstring jako ciągwbstring = "C:\nowy.xlsx"ActiveWorkbook.SaveAs Nazwa pliku:= wbstring

Skoroszyt Zapisz jako - Nowy katalog, Określ rozszerzenie pliku - Metoda Alt

Możesz także określić format pliku w jego własnym argumencie.

1234 .xlsx = 51 '(52 dla komputerów Mac).xlsm = 52 '(53 dla komputerów Mac).xlsb = 50 '(51 dla komputerów Mac).xls = 56 '(57 dla komputerów Mac)
1 ActiveWorkbook.SaveAs Nazwa pliku:= "C:\nowy", FileFormat:= 51

Skoroszyt Zapisz jako - Dodaj hasło, aby otworzyć plik

1 ActiveWorkbook.SaveAs Nazwa pliku:= "C:\nowy.xlsx", Hasło:= "hasło"

Skoroszyt Zapisz jako - Dodaj hasło do uprawnień zapisu

Jeśli nie podano poprawnego hasła, skoroszyt otwiera się jako tylko do odczytu

1 ActiveWorkbook.SaveAs Filename:= "C:\nowy.xlsx", WriteRes:= "hasło"

Skoroszyt Zapisz jako - zalecane tylko do odczytu

TRUE, aby wyświetlić okno komunikatu, zalecając otwarcie pliku tylko do odczytu.

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

Inne Zapisz jako przykłady

Okno dialogowe Utwórz Zapisz jako

Spowoduje to wygenerowanie okna dialogowego Zapisz jako, monitującego użytkownika o zapisanie pliku.
Pamiętaj, że ten prosty kod może nie być odpowiedni we wszystkich przypadkach.

1 Application.GetSaveAsFilename

Okno dialogowe Utwórz Zapisz jako z podaną domyślną nazwą pliku

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

Okno dialogowe Utwórz Zapisz jako z podaną domyślną nazwą pliku

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

Utwórz i zapisz nowy skoroszyt

Spowoduje to utworzenie nowego skoroszytu i natychmiastowe zapisanie go.

123456 Dim wb jako skoroszytUstaw wb = Skoroszyty.DodajApplication.DisplayAlerts = Falsewb.SaveAs Nazwa pliku:=”c:\Test1.xlsx”Application.DisplayAlerts = Prawda

Wyłącz alerty zapisu

Podczas pracy z zapisywaniem w VBA możesz napotkać różne ostrzeżenia lub monity dotyczące zapisywania. Aby wyłączyć ostrzeżenia, dodaj ten wiersz kodu:

1 Application.DisplayAlerts=Fałsz

i ponownie włączyć alerty:

1 Application.DisplayAlerts=True
wave wave wave wave wave