01 Что делает макрос
Данный макрос поможет создать новый файл для каждого листа существующей книги.
В этом макросе помечаются рабочие листы, копируется каждый лист, а затем копия отправляется в новую книгу. Надо отметить, что вновь созданные книги сохраняются в том же каталоге, что и исходные, с именем скопированного листа.
02 Код макроса
Sub
SozdatNoviiFailDlyaKajdogoLista()
'Шаг 1: Объявляем переменные
Dim
ws
As
Worksheet
Dim
wb
As
Workbook
'Шаг 2: Запускаем цикл через листы
For
Each
ws
In
ThisWorkbook.Worksheets
'Шаг 3: Создаем новую рабочую книгу и сохраняем ее.
Set
wb = Workbooks.Add
wb.SaveAs ThisWorkbook.Path & "\" & ws.Name
'Шаг 4: Копируем целевой лист в новую книгу
ws.Copy Before:=wb.Worksheets(1)
wb.Close SaveChanges:=
True
'Шаг 5: Возвращаемся в п.2.
Next
ws
End
Sub
03 Как работает макрос
1. Шаг 1 объявляет две переменные объекта. Переменная WS создает контейнер памяти для каждого листа макросов с помощью цикла. Переменная создает контейнер для новых рабочих книг.
2. На шаге 2 макрос начинает цикл по листам. Использование объекта ThisWorkbook гарантирует, что активный лист копирует код книги, которая создается.
3. На шаге 3, мы создаем новую книгу и сохраняем её в том же месте, что и исходную (файл thisworkbook). Имя файла будет такое же имя, что и имя листа.
4. Шаг 4 копия активного листа вставляется в новую книгу перед первым листом.
5. Шаг 5 повторяем шаг 3 для следующего листа. После того как все листы будут скопированы макрос завершает работу.
Важно! Не всегда возможно дать новой книге имя определенного листа. Windows имеет конкретные правила, которые мешают использовать в имени файла определенные символы.
Символы, которые нельзя использовать:
- обратная косая черта (\),
- косая черта (/),
- двоеточие (:),
- звездочка (*),
- знак вопроса (?),
- трубы (|),
- кавычки («),
- больше ( > ),
- меньше (<).
Если в наименовании ваших листов используются эти символы, то использование макроса может привести к ошибке. Например, макрос выдает ошибку при создании нового файла из листа под названием Май| Выручка (из-за знака «|»).
04 Как использовать
Для реализации этого макроса, вы можете скопировать и вставить его в стандартный модуль:
1. Активируйте редактор Visual Basic, нажав ALT + F11.
2. Щелкните правой кнопкой мыши имя проекта / рабочей книги в окне проекта.
3. Выберите Insert➜Module.
4. Введите или вставьте код во вновь созданном модуле.
05 Скачать файл
Автор проекта
Дмитрий Якушев
Привет! Меня зовут Дмитрий. С 2014 года Microsoft Cretified Trainer. Вместе с командой управляем этим сайтом. Наша цель - помочь вам эффективнее работать в Excel.
Изучайте наши статьи с примерами формул, сводных таблиц, условного форматирования, диаграмм и макросов. Записывайтесь на наши курсы или заказывайте обучение в корпоративном формате.
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Подписывайтесь на нас в соц.сетях:
Сайт https://akademia-excel.ru/
ИП Якушев Дмитрий Александрович
ОГРНИП: 314501721200022
ИНН: 501706813807
Образовательная лицензия № Л035-01255-50/01194039
Банковские реквизиты:
Расчетный счет 40802810500000003597
Банк АО «Тинькофф Банк»
Юридический адрес Банка Москва, 123060,1-й Волоколамский проезд, д. 10, стр. 1
Корр. счет Банка 30101810145250000974
ИНН Банка 7710140679
БИК Банка 044525974
Регистрация на сайте означает согласие с пользовательским соглашением и на получение рассылки и рекламных материалов.
Политика в отношении обработки и защиты персональных данных.
Почта: info@akademia-excel.ru
Телефон для связи: + 7 (958) 697-73-88, + 7 (495) 145-23-86
Написать в тех.поддержку
Подписывайтесь:
авторизуйтесь