Този урок за VBA обхваща как да запишете файл с помощта на командите Запазване и Запазване като във VBA.
Запазване на работна книга - VBA
Командата VBA Save записва файл на Excel подобно на щракване върху иконата Save или използване на Save Shortcut (CTRL + S).
Запазете определена работна книга
За да запишете работна книга, направете справка с обекта на работната книга и използвайте командата Запазване.
1 | Работни книги ("savefile.xlsm"). Запазване |
Запазете активната работна книга
Забележка: Това е текущата активна работна книга от с във VBA кода, който е различен от ThisWorkbook, който съдържа текущия код.
Запазете работната книга, където се съхранява кодът
Запазете всички отворени работни книги
Това ще премине през всички отворени работни книги, запазвайки всяка една.
12345 | Dim wb като работна книгаЗа всяка wb в Application.Workbookswb.SaveСледваща wb |
Запазете всички отворени работни книги, които не са били отворени ReadOnly
Забележка: отварянето на работна книга в режим ReadOnly предотвратява запазването на файла.
За да запазите файла, ще трябва да използвате Save As и да запишете файла с различно име.
1234567 | Dim wb като работна книгаЗа всяка wb в Application.WorkbooksАко не wb ReadOnly тогаваwb.SaveКрай, акоСледваща wb |
Запазете работна книга, дефинирана от променлива
Това ще запише работна книга, която е присвоена на променлива на обект на работна книга.
1234 | Dim wb като работна книгаset wb = работни книги ("savefile.xlsm")wb.save |
Запазете работна книга, дефинирана от низова променлива
Това ще запише работна книга, чието име е записано в променлива от низ.
1234 | Затъмнете wbstring като низwbstring = "savefile.xlsm"работни книги (wbstring) .запиши |
Запазете работна книга, определена от реда, в който е отворена.
Забележка: Първата отворена работна книга ще има 1, втората 2 и т.н.
1 | работни книги (1) .запишете |
Запазете работна книга въз основа на стойност на клетката
Това ще запише работна книга, чието име се намира в стойността на клетката.
1234 | Затъмнете wbstring като низwbstring = activeworkbook.sheets ("sheet1"). range ("wb_save"). стойностработни книги (wbstring) .запиши |
Запазване като - VBA
Командата VBA Save As записва Excel файл като нов файл, подобно на щракване върху иконата Save As или използване на пряк път Save As (Alt> F> A).
По -горе идентифицирахме всички начини да посочите коя работна книга да запазите. Можете да използвате същите тези методи за идентифициране на работни книги, когато използвате Запазване като.
Save As се държи подобно на Save, освен че също трябва да посочите името на новия файл.
Всъщност Save As има много потенциални променливи за дефиниране:
Запазване като синтаксис:
123 | обект на работна книга .SaveAs (FileName, FileFormat, Password, WriteResPassword, _ReadOnlyRecommended, CreateBackup, AccessMode, ConflictResolution, _AddToMru, TextCodepage, TextVisualLayout, Local) |
Пълно описание на всички аргументи на SaveAs е включено по -долу. Засега ще се съсредоточим върху най -често срещаните примери.
Забележка: Тези аргументи могат да бъдат въведени като низ с скоби или като дефинирани променливи.
Примери за запазване като синтаксис:
Работна книга Запазване като - Същата директория
1 | ActiveWorkbook.SaveAs Име на файла: = "нов" |
или
1 | ActiveWorkbook.Save Като „нов“ |
или
1234 | Затъмнете wbstring като низwbstring = "нов"ActiveWorkbook.SaveAs Име на файла: = wbstring |
Работна книга Запазване като - Нова директория
1 | ActiveWorkbook.SaveAs Име на файла: = "C: \ new" |
или
1234 | Затъмнете wbstring като низwbstring = "C: \ нов"ActiveWorkbook.SaveAs Име на файла: = wbstring = |
Работна книга Запазване като - Нова директория, Посочете разширение на файла
1 | ActiveWorkbook.SaveAs Име на файла: = "C: \ new.xlsx" |
или
1234 | Затъмнете wbstring като низwbstring = "C: \ new.xlsx"ActiveWorkbook.SaveAs Име на файла: = wbstring |
Работна книга Запазване като - Нова директория, Посочете разширение на файла - Алтернативен метод
Можете също да посочите файловия формат в собствения му аргумент.
1234 | .xlsx = 51 '(52 за Mac).xlsm = 52 '(53 за Mac).xlsb = 50 '(51 за Mac).xls = 56 '(57 за Mac) |
1 | ActiveWorkbook.SaveAs Име на файл: = "C: \ new", FileFormat: = 51 |
Работна книга Запазване като - Добавяне на парола за отваряне на файл
1 | ActiveWorkbook.SaveAs Име на файл: = "C: \ new.xlsx", Парола: = "парола" |
Работна книга Запазване като - Добавяне на парола за привилегии за запис
Ако не е предоставена правилна парола, работната книга се отваря като Само за четене
1 | ActiveWorkbook.SaveAs Име на файл: = "C: \ new.xlsx", WriteRes: = "парола" |
Работна книга Запазване като - Препоръчва се само за четене
ИСТИНА за показване на поле за съобщение, препоръчващо файлът да се отваря само за четене.
1 | ActiveWorkbook.SaveAs Име на файл: = "C: \ new.xlsx", ReadOnlyRecommended: = TRUE |
Други примери за запазване като
Създайте диалогов прозорец Запиши като
Това генерира диалоговия прозорец Запиши като, подканвайки потребителя да запише файла.
Имайте предвид, че този прост код може да не е подходящ във всички случаи.
1 | Application.GetSaveAsFilename |
Създайте диалогов прозорец Запиши като с предоставено име на файл по подразбиране
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Създайте диалогов прозорец Запиши като с предоставено име на файл по подразбиране
1 | Application.GetSaveAsFilename InitialFilename: = "test.xlsx" |
Създаване и запазване на нова работна книга
Това ще създаде нова работна книга и веднага ще я запише.
123456 | Dim wb Като работна книгаЗадайте wb = Работни книгиApplication.DisplayAlerts = Falsewb.SaveAs Име на файла: = ”c: \ Test1.xlsx”Application.DisplayAlerts = Вярно |
Деактивирайте Запазване на сигнали
Докато работите със записване във VBA, може да срещнете различни предупреждения или подкани за запазване. За да деактивирате предупрежденията, добавете този ред код:
1 | Application.DisplayAlerts = False |
и за повторно активиране на сигналите:
1 | Application.DisplayAlerts = Вярно |