Добавить в корзинуПозвонить
Найти в Дзене
Макрос решает

Макросы Excel: автоматическое создание и сохранение файлов VBA без ручной работы. ЧАСТЬ 3

Excel сам создаёт файлы: как макросы VBA сохраняют отчёты по регионам без вашего участия. Пошагово разбираем, как с помощью VBA макросов автоматически создавать отдельные Excel-файлы, сохранять их в папку и закрывать без ошибок. До этого момента Excel уже умеет: — фильтровать данные
— копировать нужные строки
— создавать листы
— повторять действия для каждого региона Но в реальной работе этого мало. Настоящая боль начинается здесь: — файлы нужно разослать
— файлы нужно архивировать
— файлы нужно хранить отдельно А значит — каждый регион = отдельный Excel-файл. Именно здесь макросы начинают экономить не минуты, а часы. Человек делает так: Excel может сделать то же самое, но: — без ошибок
— без забытых файлов
— без человеческого фактора Нужно лишь один раз показать ему, как именно. В VBA нет кнопок и меню. Там есть команды. Чтобы создать новый файл на основе листа, Excel использует: │ ActiveSheet.Copy Что делает эта команда: — берёт активный лист
— создаёт новую книгу
— помещает этот лис
Оглавление

Excel сам создаёт файлы: как макросы VBA сохраняют отчёты по регионам без вашего участия. Пошагово разбираем, как с помощью VBA макросов автоматически создавать отдельные Excel-файлы, сохранять их в папку и закрывать без ошибок.

Когда автоматизация становится по-настоящему ценной

До этого момента Excel уже умеет:

— фильтровать данные
— копировать нужные строки
— создавать листы
— повторять действия для каждого региона

Но в реальной работе этого мало. Настоящая боль начинается здесь:

— файлы нужно разослать
— файлы нужно
архивировать
— файлы нужно
хранить отдельно

А значит — каждый регион = отдельный Excel-файл. Именно здесь макросы начинают экономить не минуты, а часы.

Нельзя просто «Сохранить как»

Человек делает так:

  1. Создал лист
  2. Файл → Сохранить как
  3. Выбрал папку
  4. Вписал имя
  5. Сохранил
  6. Закрыл
  7. Повторил 20 раз

Excel может сделать то же самое, но:

— без ошибок
— без забытых файлов
— без человеческого фактора

Нужно лишь один раз показать ему, как именно.

Как Excel создаёт новый файл через VBA

В VBA нет кнопок и меню. Там есть команды. Чтобы создать новый файл на основе листа, Excel использует:

│ ActiveSheet.Copy

Что делает эта команда:

— берёт активный лист
— создаёт
новую книгу
— помещает этот лист в неё

Макрос решает

Это эквивалент действия: «Переместить или скопировать → Новая книга»

Где возникает главная ошибка новичков

Новички часто делают так:

— создают файл
— сохраняют
— но
не закрывают его

В результате:

— Excel начинает тормозить
— файлы остаются открыты
— макрос ведёт себя нестабильно

Поэтому правило жёсткое:

Каждый созданный файл должен быть сохранён и закрыт

Команда сохранения файла

Вот базовая команда сохранения:

│ ActiveWorkbook.SaveAs Filename:="C:\Отчёты\VLG.xlsx"

Но нам нужен универсальный код, а не один регион.

Формируем имя файла динамически

Мы уже используем переменную WS, где хранится регион. Значит имя файла собираем из частей:

│ ActiveWorkbook.SaveAs Filename:="C:\Отчёты" & WS & ".xlsx"

Что здесь важно понять:

— "C:\Отчёты\" — текст
— WS — переменная
— & — склейка
— ".xlsx" — расширение

Excel в итоге получает, например:

C:\Отчёты\ВЛГ.xlsx

Закрываем файл правильно

После сохранения файл обязательно закрываем:

│ ActiveWorkbook.Close False

Макрос решает

False означает:

— не задавать лишних вопросов
— не спрашивать «Сохранить?»
— просто закрыть

Макросы не любят диалоги. Им нужна чёткая логика.

Полный рабочий код: от листа к файлу

Теперь собираем всё в единый процесс.

Sub SaveRegionsToFiles()
Regions = Array("ВЛГ", "МСК", "САМ")
For Each WS In Regions
ActiveSheet.Range("$A$1:$F$60").AutoFilter Field:=5, Criteria1:=WS
Range("A1:F60").Copy
ActiveSheet.Copy
ActiveWorkbook.SaveAs Filename:="C:\Отчёты" & WS & ".xlsx"
ActiveWorkbook.Close False
Application.CutCopyMode = False
Next WS
MsgBox "Файлы созданы"
End Sub

Этот код:

— фильтрует данные
— копирует строки
— создаёт файл
— сохраняет
— закрывает
— повторяет для всех регионов

Макрос решает

Без участия человека.

Что обязательно проверить перед запуском

Перед первым запуском макроса:

✔ папка C:\ Отчёты должна существовать
✔ данные должны начинаться с одинаковых столбцов
✔ фильтр должен применяться к правильному столбцу

Макросы не «угадывают». Они делают ровно то, что вы им сказали.

Это уже уровень «профессионал»

На этом этапе Excel:

— формирует отчёты
— сохраняет их
— структурирует данные
— исключает ошибки

Это тот момент, когда:

— Excel перестаёт быть таблицей
— и становится
инструментом автоматизации

👉 Подписывайтесь на канал в Дзен и Телеграм и пишите в комментариях, для каких задач вы хотите автоматизацию — файлы, отчёты, выгрузки, кнопки.

В ЧАСТИ 4:

— добавим имена листов автоматически
— избавимся от жёстких ссылок
— научим макрос работать устойчиво
— подготовим код к кнопке запуска

Это финальный шаг к «нажал — и всё готово».

Макрос решает