Vba Excel сохранить как

Обновлено: 02.07.2024

Команда VBA "Сохранить" сохраняет файл Excel аналогично щелчку значка "Сохранить" или использованию сочетания клавиш "Сохранить" (CTRL + S).

Сохранить указанную книгу

Чтобы сохранить книгу, укажите ссылку на объект книги и используйте команду "Сохранить".

Сохранить активную книгу

Примечание. Это текущая активная рабочая книга из кода VBA, которая отличается от ThisWorkbook, содержащей текущий код.

Программирование VBA стало проще

Прекратите искать код VBA в Интернете. Узнайте больше об AutoMacro — конструкторе кода VBA, который позволяет новичкам создавать процедуры с нуля с минимальными знаниями в области кодирования и множеством функций, позволяющих сэкономить время для всех пользователей!

vba сохранить как

Сохраните рабочую книгу там, где хранится код

Сохранить все открытые книги

Это позволит перебрать все открытые книги, сохраняя каждую.

Сохранить все открытые книги, которые не были открыты, только для чтения

Примечание. Открытие книги в режиме "Только для чтения" не позволяет сохранить файл.
Чтобы сохранить файл, вам нужно будет использовать Сохранить как и сохранить файл под другим именем.

Сохранение рабочей книги, заданной переменной

При этом будет сохранена рабочая книга, назначенная переменной объекта рабочей книги.

Сохранение рабочей книги, заданной строковой переменной

Это сохранит книгу, имя которой было сохранено в строковой переменной.

Сохранение книги в порядке ее открытия.

Примечание. Первая открытая книга будет иметь 1, вторая 2 и т. д.

Сохранение книги на основе значения ячейки

При этом будет сохранена книга, имя которой найдено в значении ячейки.

Сохранить как — VBA

Команда VBA «Сохранить как» сохраняет файл Excel как новый файл, аналогично щелчку значка «Сохранить как» или использованию ярлыка «Сохранить как» (Alt > F > A).
Выше мы определили все способы указать, какую книгу нужно сохранить. Вы можете использовать те же самые методы для идентификации книг при использовании функции "Сохранить как".

Сохранить как аналогично Сохранить, за исключением того, что вам также нужно указать имя нового файла.
На самом деле, функция «Сохранить как» может определять множество переменных:

Синтаксис "Сохранить как":

Полное описание всех аргументов Сохранить как приведено ниже. А пока остановимся на самых распространенных примерах.
Примечание. Эти аргументы можно вводить как строку с круглыми скобками или как определенные переменные.

У меня есть книга Excel, в которой при нажатии кнопки формы я хочу сохранить копию книги с именем файла, являющимся текущей датой.

Я продолжаю пробовать следующий ActiveWorkbook.SaveAs ("\\filePath\FormFlow To MSExcel\" & Left(Now(), 10)) но получаю ошибку времени выполнения "1004": метод "SaveAs" объекта Ошибка "_Workbook".

Может ли кто-нибудь помочь мне с этим? Я все еще новичок в разработке для Excel.


8 ответов 8

Скорее всего, путь, к которому вы пытаетесь получить доступ, не существует. Кажется, вы пытаетесь сохранить в относительном месте, и у вас нет расширения файла в этой строке. Если вам нужно использовать относительные пути, вы можете проанализировать путь из ActiveWorkbook.FullName

EDIT: лучший синтаксис также был бы

Спасибо за помощь! Наконец-то получил то, что хотел, со следующим: ActiveWorkbook.SaveCopyAs ("\\filePath\Feed Program\FormFlow To MSExcel\Archive\FeedSampleReport-" & Format(Now(), "mmddyyyy") & ".xlsm")

Я очень успешно использовал ваш код. Спасибо! Один небольшой момент: использование формата файла xlWorkbookNormal сохраняет файл как книгу Excel 97-2003. Чтобы сохранить текущую книгу .xlsx, вы должны использовать xlOpenXMLWorkbook. Мой код:

вместо использования имен (например, xlWorkbookNormal) используйте числа. Или же вы не сможете скомпилировать более старый Excel несколько раз. См. rondebruin.nl/win/s5/win001.htm

Используйте FileFormat:=51 (или FileFormat:=xlOpenXMLWorkbook), чтобы получить книгу в формате .xlsx, что особенно важно при работе с большими объемами данных.

Самый простой способ использовать эту функцию — начать с записи макроса. Как только вы начнете запись, сохраните файл в нужном месте с нужным именем, а затем, конечно же, установите тип файла, скорее всего, «Excel Macro Enabled Workbook» ~ «XLSM»

Остановите запись, и вы сможете начать проверку своего кода.

Я написал приведенный ниже код, который позволяет сохранить книгу, используя путь, по которому изначально находился файл, назвав его "Событие [дата в ячейке "A1"]"

Скопируйте код в новый модуль, а затем напишите дату в ячейке "A1", например. 01-01-2016 -> назначьте сабвуфер на кнопку и запустите. [Примечание] вам нужно создать файл сохранения, прежде чем этот скрипт заработает, потому что новая книга сохраняется в местоположении автосохранения по умолчанию!


Возможно, ваш формат по умолчанию не соответствует расширению файла. Вы должны указать формат файла вместе с именем файла, убедившись, что формат соответствует расширению:

OTOH, я не вижу расширения в вашем имени файла .SaveAs. Возможно, вам нужно предоставить его, когда вы делаете это программно. Это имеет смысл — не нужно предоставлять расширение из интерфейса GUI, это удобно, но мы, программисты, должны писать недвусмысленный код. Я предлагаю добавить расширение и соответствующий формат. См. эту страницу msdn для списка форматов файлов. Честно говоря, я не узнаю многого из описаний.

xlExcel8 = 56 — это формат .xls

xlExcel12 = 50 — это формат .xlsb

xlOpenXMLWorkbook = 51 — это формат .xlsx

xlOpenXMLWorkbookMacroEnabled = 52 — это формат .xlsm

xlWorkbookDefault также указан со значением 51, что меня озадачивает, так как я думал, что формат по умолчанию можно изменить.

Метод VBA «Сохранить как» используется для сохранения файла Excel в определенном месте. Чтобы сохранить книгу с помощью кода vba, мы используем объект Workbook с функцией SaveAs.

После всей тяжелой работы, которую мы проделали в книге, мы сохраняем ее, не так ли? Больно терять данные, над которыми мы работали. У нас есть два вида сохранений в Excel или любом другом файле; один — «Сохранить», а другой — «Сохранить как». Ctrl + S — популярная комбинация клавиш, как Ctrl + C и Ctrl + V по всему миру. Но это не так знакомо с концепцией «Сохранить как». Клавиша быстрого доступа на обычном рабочем листе Клавиша быстрого доступа на рабочем листе Ярлык Excel — это способ более быстрого выполнения ручного задания. Подробнее Сохранить как файл — клавиша F12. В VBA мы также можем сохранить файл как «Сохранить как».

VBA-Save- Как

Что делает функция VBA «Сохранить как»?

Это общая задача экономии работы в процессе автоматизации. После всей работы желаем сохранить файл.

Этот код считывает книгу с именем Sales 2019.xlsx для сохранения.

Аналогичным образом можно создать копию рабочей книги, над которой мы работаем, с помощью метода «Сохранить как».

  • Имя файла: как называется файл, который вы хотите передать. Это должно сочетаться с путем к папке с файлами.
  • Формат файла. Какой должен быть формат сохраняемого файла.
  • Пароль: указать пароль для сохранения файла.
  • Write Res Password: укажите зарезервированный пароль для книги.

Думаю, этих параметров достаточно, чтобы понять метод "Сохранить как".

Как использовать функцию «Сохранить как»?

Мы правильно сохраняем книгу, поэтому важно указать имя книги и ее расширение, чтобы использовать метод «Сохранить как». Поэтому упомяните рабочую книгу, которую вы сохраняете.

Код:

 VBA Сохранить как пример 1

Теперь используйте метод "Сохранить как".

Код:

VBA Сохранить как пример 1-1

Теперь определите, где вы хотите сохранить.

Код:

Пример 1-2

Теперь поставьте обратную косую черту и введите имя файла по вашему желанию с расширением файла.

Код:

Пример 1-3

Теперь укажите формат файла как «xlWorkbok».

Код:

Пример 1-4

Хорошо, мы закончили. Файл будет сохранен на диске D > Имя папки (Статьи) > Имя подпапки (2019).

Сохранить все открытые книги

Предположим, вы работаете с 10 книгами на своем компьютере. Вы хотите создать резервную копию этих книг, сохранив их на компьютере как одну из копий. Если вы хотите работать с несколькими книгами, необходимо использовать циклы.

Приведенный ниже код поможет вам сохранить все книги как копии.

Код:

 VBA Сохранить как пример 2

Если вы хотите выбрать свой собственный путь к папке, вы можете использовать этот код.

Код:

 VBA Сохранить как пример 3

Как только вы запустите этот код с помощью клавиши F5 или вручную, он попросит вас выбрать путь к папке назначения, выбрать и нажать OK. Это сохранит файл.

Рекомендуемые статьи

Это руководство по Сохранить как в VBA. Здесь мы узнаем, как использовать save как метод для сохранения книги Excel вместе с примерами и загружаемыми шаблонами. Ниже приведены некоторые полезные статьи, связанные с VBA –

Чтобы сохранить книгу Excel с помощью VBA, необходимо использовать метод SAVE для написания макроса. И в этом макросе вам нужно указать книгу, которую вы хотите сохранить, а затем использовать метод SAVE. Когда вы запускаете этот код, он работает как сочетание клавиш (Control + S).


  1. Укажите шляпу рабочей книги, которую вы хотите сохранить.
  2. Введите точку, чтобы получить список всех свойств и методов.
  3. Выберите один из способов «Сохранить» или введите «Сохранить».
  4. В конце запустите код, чтобы сохранить книгу.

В этом руководстве мы рассмотрим различные способы сохранения книги. Поэтому не забудьте открыть редактор VBA на вкладке разработчика, чтобы использовать код из этого руководства.

Сохраните ActiveWorkbook

Если вы хотите сохранить активную книгу, в этом случае вы можете использовать код, подобный приведенному ниже, вместо того, чтобы указывать книгу по ее имени.

Когда вы используете ActiveWorkbook в качестве рабочей книги, VBA всегда обращается к рабочей книге, которая активна, независимо от того, в каком файле вы пишете код.

Сохраните рабочую книгу, в которой вы пишете код

Если вы хотите сохранить файл, в котором вы пишете код, вам нужно использовать «ThisWorkbook» вместо имени книги.

Сохранить все открытые книги

Здесь мы можем использовать цикл, чтобы просмотреть все открытые книги и сохранить их одну за другой. Посмотрите на приведенный ниже код.

Приведенный выше код использует цикл FOR EACH в каждой книге, а также метод SAVE для каждого файла один за другим.

Примечание. Если вы пытаетесь сохранить книгу с помощью метода СОХРАНИТЬ, который еще не сохранен, Excel покажет диалоговое окно с запросом вашего разрешения на сохранение этого файла, а затем вам нужно выбрать, хотите ли вы сохранить этот файл в местоположении по умолчанию в формате по умолчанию.

Теперь вот что: поскольку вы используете макрос для сохранения книги, этот файл должен быть сохранен в формате с поддержкой макросов, и лучший способ справиться с этой ситуацией — использовать метод СОХРАНИТЬ КАК (мы см. в следующем разделе этого руководства).

Сохранить как файл Excel

Чтобы СОХРАНИТЬ еще не сохраненный файл с помощью VBA, необходимо использовать метод СОХРАНИТЬ КАК. В этом методе вы можете указать имя файла и путь, по которому вы хотите сохранить файл, и, кроме того, вы можете определить еще десять аргументов.

В следующем коде у вас нет аргументов для метода "СОХРАНИТЬ КАК".


Когда вы запускаете этот код, он спрашивает вас о нескольких вещах, например, какой формат вы хотите использовать для сохранения файла, хотите ли вы заменить существующий файл, который уже сохранен, с тем же именем. Поэтому лучше определить использование некоторых аргументов.

Сохранить как файл в текущем местоположении

По умолчанию VBA использует текущее местоположение для сохранения файла. Когда вы пишете код с помощью метода СОХРАНИТЬ КАК и просто указываете имя, этот файл сразу попадает в текущую папку. В следующем коде вы можете увидеть, где у вас есть , который сохраняет активную книгу.


Сохранить как файл в определенном месте

Аргумент имени файла также позволяет использовать путь к местоположению, если вы хотите использовать другое место для сохранения файла.


В приведенном выше коде у вас есть путь в аргументе FileName, и VBA использует этот путь к файлу.

Примечание. Вы также можете использовать этот метод, чтобы проверить, существует ли книга в папке или нет, прежде чем использовать метод СОХРАНИТЬ КАК, чтобы сохранить ее в определенном месте, и вы можете узнать больше о методе СОХРАНИТЬ КАК здесь.

Читайте также: