Добавить это приложение в закладки
Нажмите Ctrl + D, чтобы добавить эту страницу в избранное, или Esc, чтобы отменить действие.
Отправьте ссылку для скачивания на
Отправьте нам свой отзыв
Ой! Произошла ошибка.
Недопустимый файл. Убедитесь, что загружается правильный файл.
Ошибка успешно зарегистрирована.
Вы успешно сообщили об ошибке. Вы получите уведомление по электронной почте, когда ошибка будет исправлена.
Нажмите эту ссылку, чтобы посетить форумы.
Немедленно удалите загруженные и обработанные файлы.
Вы уверены, что хотите удалить файлы?
Введите адрес
❓
Как разделить файл с помощью Excel разделителя документов?
Прежде всего, вам нужно выбрать и добавить Excel файл для разделения двумя способами: перетащить ваш Excel файл в белую область с меткой «Нажмите или перетащите свой файл сюда» или нажмите на эту область, а затем выберите нужный файл Excel с помощью проводника. Как только файл будет добавлен, зеленый индикатор выполнения начнет расти. После завершения процесса можно нажать кнопку Сохранить, а затем загрузить файл результата Excel.
⏱️
Сколько времени занимает разделение Excel файла?
Обычно этот Excel Document Splitter работает быстро для небольших файлов за считанные секунды.
🛡️
Безопасно ли разделять файл с помощью нашего бесплатного Excel Document Splitter?
Да, ссылка для скачивания файла результат Excel будет доступна только вам. Загруженный файл будет удален через 24 часа, а ссылка для загрузки перестанет работать по истечении этого периода времени. Никто не имеет доступа к вашему файлу. Разделитель документов Excel абсолютно безопасен.
💻
Могу ли я разделить файл Excel на Linux, Mac OS или Android?
Да, вы можете использовать наш бесплатный Excel Document Splitter на любой операционной системе, в которой есть веб-браузер. Наш Excel Document Splitter работает онлайн и не требует установки программного обеспечения.
🌐
Какой браузер следует использовать для разделения Excel файла?
Для разделения файлов можно использовать любой современный браузер Excel, например, Google Chrome, Microsoft Edge, Firefox, Opera или Safari.
На чтение 5 мин Просмотров 1.1к. Опубликовано 30.03.2022
Такое бывает довольно часто, делаешь ежегодный отчет, а в нем 12 месяцев, соответственно 12 листов. И нужно разделить этот файл таким образом, чтобы каждый лист стал отдельным файлом.
И конечно же, можно сделать это руками, но это крайне долго и неэффективно.
Я продемонстрирую вам простой код Visual Basic, который выполнит задачу за вас.
Содержание
- Делим файл Excel на несколько файлов по листам
- Делим файл Excel на несколько PDF файлов по листам
- Разделите только те рабочие листы, в которых содержится слово/фраза, на отдельные файлы Excel
Делим файл Excel на несколько файлов по листам
Допустим, у нас есть ежегодный отчет, в котором по листам расписаны показатели компании за каждый месяц. Как на картинке ниже:
Код Visual Basic, который разделит таблицу на несколько файлов по месяцам:
Sub SplitEachWorksheet()
Dim FPath As String
FPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Sheets
ws.Copy
Application.ActiveWorkbook.SaveAs Filename:=FPath & "" & ws.Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Перед тем, как запустите этот код, сделайте следущее:
- Создайте новую папку, куда поместите результаты работы этого кода;
- А также, на всякий случай, сделайте копию оригинального файла.
Теперь создайте функцию в Visual Basic и смело запускайте код.
Этот код сам найдет путь до папки с файлом.
Как он работает?
Довольно просто, он открывает каждый лист и сохраняет его как отдельный файл с тем же названием.
Куда поместить этот код?
Пошаговая инструкция:
- Щелкните на «Разработчик»;
- Далее откройте VBA;
- Правой кнопкой мышки на любой лист;.
- Щелкните на «Insert» -> «Module»;
- Поместите наш код в открывшееся окошко;
- Теперь запустите код.
Итак, как только вы запустите код, он сразу же разделит ваш файл на несколько файлов по листам. Это крайне удобно, советую его сохранить. Даже если сейчас он вам не нужен, в будущем обязательно пригодится.
Как я говорил ранее, имя файла такое же, как и имя листа.
Также не забудьте сохранить файл с соответствующим расширением(.XLSM), так как мы используем функции Visual Basic.
В коде я специально сделал так, чтобы вы не видели все что происходит и это вам не мешало. Вы можете исправить это если вам наоборот нужно видеть то, что происходит.
Но также, опять повторюсь, обязательно сделайте копию вашего файла перед использованием функции! Потому что если работа Excel завершится из-за какой-либо ошибки или произойдет еще что-то неожиданное вы можете потерять свои данные!
Делим файл Excel на несколько PDF файлов по листам
Вот код для такого случая:
Sub SplitEachWorksheet()
Dim FPath As String
FPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Sheets
ws.Copy
Application.ActiveSheet.ExportAsFixedFormat Type:=xlTypePDF, Filename:=FPath & "" & ws.Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
И снова, не забудьте сначала создать папку и обязательно сделать копию оригинального файла. Код разделит вашу табличку по страницам и создаст для каждой страницы отдельный PDF файл.
Разделите только те рабочие листы, в которых содержится слово/фраза, на отдельные файлы Excel
Бывают и такие ситуации, что отдельный файл нужно создать только для тех страниц, в названии которых есть определенный текст.
Допустим, у вас есть страницы отчета за разные года, в названии каждого листа указан год и месяц. Но вам нужно сохранить только те листы, которые относятся к 2020 году. Как это сделать?
Вот код Visual Basic:
Sub SplitEachWorksheet()
Dim FPath As String
Dim TexttoFind As String
TexttoFind = "2020"
FPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each ws In ThisWorkbook.Sheets
If InStr(1, ws.Name, TexttoFind, vbBinaryCompare) <> 0 Then
ws.Copy
Application.ActiveWorkbook.SaveAs Filename:=FPath & "" & ws.Name & ".xlsx"
Application.ActiveWorkbook.Close False
End If
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Как вы могли заметить, прямо в коде, мы создали переменную и задали ей значение 2020.
Затем этот код просто проходится по каждой странице и проверяет есть ли в имени нужная нам часть (то есть нужный год). А далее сохраняет отдельно только те листы, в имени которых он нашел совпадения.
Если совпадения не будут найдены — результат будет 0.
В этом коде используется цикл «Если/То». Если он находит нужное текстовое значение в имени листа, то сохраняет его отдельно, если не находит — просто пропускает.
Сохранение листов книги как отдельных файлов
Про сборку листов из нескольких книг в одну текущую я уже писал здесь. Теперь разберем решение обратной задачи: есть одна книга Excel, которую нужно «разобрать», т.е. сохранить каждый лист как отдельный файл для дальнейшего использования.

Примеров подобного из реальной жизни можно привести массу. Например, файл-отчет с листами-филиалами нужно разделить на отдельные книги по листам, чтобы передать затем данные в каждый филиал и т.д.
Если делать эту процедуру вручную, то придется для каждого листа выполнить немаленькую цепочку действий (выбрать лист, правой кнопкой по ярлычку листа, выбрать Копировать, указать отдельный предварительно созданный пустой файл и т.д.) Гораздо проще использовать короткий макрос, автоматизирующий эти действия.
Способ 1. Простое разделение
Нажмите сочетание Alt+F11 или выберите в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor), вставьте новый модуль через меню Insert — Module и скопируйте туда текст этого макроса:
Sub SplitSheets1()
Dim s As Worksheet
For Each s In ActiveWorkbook.Worksheets 'проходим по всем листам в активной книге
s.Copy 'копируем каждый лист в новый файл
Next
End Sub
Если теперь выйти из редактора Visual Basic и вернуться в Excel, а затем запустить наш макрос (Alt+F8), то все листы из текущей книги будут разбиты по отдельным новым созданным книгам.
Способ 2. Разделение с сохранением
При необходимости, можно созданные книги сразу же сохранять под именами листов. Для этого макрос придется немного изменить, добавив команду сохранения в цикл:
Sub SplitSheets2()
Dim s As Worksheet
Dim wb as Workbook
Set wb = ActiveWorkbook
For Each s In wb.Worksheets 'проходим во всем листам активной книги
s.Copy 'сохраняем лист как новый файл
ActiveWorkbook.SaveAs wb.Path & "" & s.Name & ".xlsx" 'сохраняем файл
Next
End Sub
Этот макрос сохраняет новые книги-листы в ту же папку, где лежал исходный файл. При необходимости сохранения в другое место, замените wb.Path на свой путь в кавычках, например «D:Отчеты2012» и т.п.
Если нужно сохранять файлы не в стандартном формате книги Excel (xlsx), а в других (xls, xlsm, xlsb, txt и т.д.), то кроме очевидного изменения расширения на нужное, потребуется добавить еще и уточнение формата файла — параметр FileFormat:
ActiveWorkbook.SaveAs wb.Path & "" & s.Name & ".xlsb", FileFormat:=50
Для основных типов файлов значения параметра FileFormat следующие:
- XLSX = 51
- XLSM = 52
- XLSB = 50
- XLS = 56
- TXT = 42
Полный список всех вариантов можно посмотреть в справке MSDN.
Способ 3. Сохранение в новые книги только выделенных листов
Если вы хотите раскидать по файлам не все листы в вашей книге, а только некоторые, то макрос придется немного изменить. Выделите нужные вам листы в книге, удерживая на клавиатуре клавишу Ctrl или Shift и запустите приведенный ниже макрос:
Sub SplitSheets3()
Dim AW As Window
Set AW = ActiveWindow
For Each s In AW.SelectedSheets
Set TempWindow = AW.NewWindow 'создаем отдельное временное окно
s.Copy 'копируем туда лист из выделенного диапазона
TempWindow.Close 'закрываем временное окно
Next
End Sub
Создавать новое окно и копировать через него, а не напрямую, приходится потому, что Excel не умеет копировать группу листов, если среди них есть листы с умными таблицами. Копирование через новое окно позволяет такую проблему обойти.
Способ 4. Сохранение только выделенных листов в новый файл
Во всех описанных выше способах каждый лист сохранялся в свой отдельный файл. Если же вы хотите сохранить в отдельный новый файл сразу группу выделенных предварительно листов, то нам потребуется слегка видоизменить наш макрос:
Sub SplitSheets4()
Dim CurW As Window
Dim TempW As Window
Set CurW = ActiveWindow
Set TempW = ActiveWorkbook.NewWindow
CurW.SelectedSheets.Copy
TempW.Close
End Sub
Способ 5. Сохранение листов как отдельных PDF-файлов
Этот способ чем-то похож на второй, но листы сохраняются не как отдельные книги Excel, а в формате PDF, что часто требуется, если никто не должен менять документ и увидеть ваши формулы. Обратите внимание, что:
- для этого используется уже другой метод (ExportAsFixedFormat а не Copy)
- листы выводятся в PDF с параметрами печати, настроенными на вкладке Разметка страницы (Page Layout)
- книга должна быть сохранена на момент экспорта
Нужный нам код будет выглядеть следующим образом:
Sub SplitSheets5()
Dim s As Worksheet
For Each s In ActiveWorkbook.Worksheets
s.ExportAsFixedFormat Filename:=ThisWorkbook.Path & "" & s.Name & ".pdf", Type:=xlTypePDF
Next
End Sub
Способ 6. Готовый макрос из надстройки PLEX
Если лень или нет времени внедрять все вышеописанное, то можно воспользоваться готовым макросом из моей надстройки PLEX:

Ссылки по теме
- Сборка листов из нескольких книг в одну
- Что такое макросы, куда вставлять код на Visual Basic, как их использовать.
Перейти к содержимому
Порой при сравнении двух файлов (документов Excel) приходится переключаться между файлами, открытыми в разных окнах. Рассмотрим способ выведения двух окон на одном экране Excel, поскольку переключение между окнами процесс трудозатратный и довольно раздражающий.
Для начала следует открыть оба файла. Названия файлов должны быть разными.
После открытия перейдите в панели быстрого доступа на вкладку «Вид».
Во вкладке «Вид» следует выбрать пиктограмму «Упорядочить все».
После нажатия на пиктограмму «Упорядочить все» на экране появится окошко с контекстным меню, предлагающим выбор расположения окон:
- Расположение «рядом» — размещает окна рядом (столбцами);
- Расположение «сверху вниз» — замещает окна сверху вниз (строками);
- Расположение «слева направо» — размещает окна рядом слева направо;
- Расположение «каскадом» — размещает окна одно на другом каскадом.
После нажатия кнопки «ОК» окна выстроятся в нужном порядке.
Чтобы вернуть окна к обычному виду, то есть каждый файл открыть в отдельном окне, достаточно кликнуть двойным щелчком мыши по верхнему краю окна (рамке окна).
После двойного клика по рамке окна вернутся в прежнее положение.











