Добавить это приложение в закладки
Нажмите Ctrl + D, чтобы добавить эту страницу в избранное, или Esc, чтобы отменить действие.
Отправьте ссылку для скачивания на
Отправьте нам свой отзыв
Ой! Произошла ошибка.
Недопустимый файл. Убедитесь, что загружается правильный файл.
Ошибка успешно зарегистрирована.
Вы успешно сообщили об ошибке. Вы получите уведомление по электронной почте, когда ошибка будет исправлена.
Нажмите эту ссылку, чтобы посетить форумы.
Немедленно удалите загруженные и обработанные файлы.
Вы уверены, что хотите удалить файлы?
Введите адрес
Сохранение листов книги как отдельных файлов
Про сборку листов из нескольких книг в одну текущую я уже писал здесь. Теперь разберем решение обратной задачи: есть одна книга 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. Например, вы можете разделить книгу на несколько отдельных файлов Excel, а затем передать каждый файл другому человеку для обработки. Поступая таким образом, вы можете заставить определенных людей обрабатывать определенные данные и сохранить ваши данные в безопасности. В этой статье будут представлены способы разделения большой книги на отдельные файлы Excel на основе каждого рабочего листа.
- Разделение книги на отдельные файлы Excel с копированием и вставкой
- Разделите книгу на отдельные файлы Excel с помощью функции перемещения или копирования
- Разделить книгу на отдельные файлы Excel с кодом VBA
- Разделите книгу на отдельные файлы Excel / PDF / CSV / TXT с помощью Kutools for Excel легко
Разделение книги на отдельные файлы Excel с копированием и вставкой
Обычно, используя Копировать Команда и Вставить Команда может вручную сохранить книгу как отдельный файл Excel. Во-первых, выберите весь лист, который вы хотите сохранить как отдельный файл, создайте новую книгу, а затем вставьте ее в новую книгу, в конце сохраните ее.
Это простой в использовании способ, если вам нужно разделить всего несколько листов в отдельные файлы. Однако разделение множества листов путем копирования и вставки вручную должно занимать много времени и утомительно.
Разделите книгу на отдельные файлы Excel с помощью функции перемещения или копирования
Этот метод представит функцию перемещения или копирования для перемещения или копирования выбранных листов в новую книгу и сохранения в виде отдельной книги. Пожалуйста, сделайте следующее:
1. Выберите листы на панели вкладок «Лист», щелкните правой кнопкой мыши и выберите Переместить или скопировать из контекстного меню. Смотрите скриншот:
Внимание: Держа Ctrl клавишу, вы можете выбрать несколько несмежных листов, щелкая их один за другим на панели вкладок Лист; держа Shift клавишу, вы можете выбрать несколько соседних листов, щелкнув первый и последний на панели вкладок «Лист».
2. В диалоговом окне «Перемещение или копирование» выберите (новая книга) из Бронировать раскрывающийся список, проверьте Создать копию и нажмите OK кнопка. Смотрите скриншот:
3. Теперь все выбранные листы копируются в новую книгу. Нажмите Файл > Сохраните чтобы сохранить новую книгу.
Быстро разбейте книгу на отдельные файлы Excel / PDF / TXT / CSV в Excel
Обычно мы можем разделить книгу на отдельные файлы Excel с помощью Переместить или скопировать функция в Excel. Но Kutools for Excel’s Разделить книгу Утилита может помочь вам легко разделить книгу и сохранить каждый лист как отдельный файл PDF / TEXT / CSV или книгу в Excel.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
Разделить книгу на отдельные файлы Excel с кодом VBA
Следующий код VBA может помочь вам быстро разделить несколько листов текущей книги на отдельные файлы Excel, пожалуйста, сделайте следующее:
1. Создайте новую папку для книги, которую вы хотите разделить, так как разделенные файлы Excel останутся в той же папке, что и эта основная книга.
2. Удерживайте ALT + F11 ключи в Excel, и он открывает Microsoft Visual Basic для приложений окно.
3. Нажмите Вставить > Модулии вставьте следующий код в окно модуля.
VBA: разделите книгу на несколько книг и сохраните в одной папке
Sub Splitbook()
'Updateby20140612
Dim xPath As String
xPath = Application.ActiveWorkbook.Path
Application.ScreenUpdating = False
Application.DisplayAlerts = False
For Each xWs In ThisWorkbook.Sheets
xWs.Copy
Application.ActiveWorkbook.SaveAs Filename:=xPath & "" & xWs.Name & ".xlsx"
Application.ActiveWorkbook.Close False
Next
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
4, нажмите F5 ключ для запуска этого кода. И книга разделена на отдельные файлы Excel в той же папке, что и исходная книга. Смотрите скриншот:
Внимание: Если один из листов имеет то же имя, что и книга, этот VBA не может работать.
Разделите книгу на отдельные файлы Excel / PDF / CSV / TXT с помощью Kutools for Excel легко
Если у вас есть Kutools for Excel установлен, его Разделить книгу Инструмент может легко и быстро разделить несколько листов в отдельные файлы Excel всего за несколько кликов.
Kutools for Excel — Включает более 300 удобных инструментов для Excel. Полнофункциональная бесплатная пробная версия 30-день, кредитная карта не требуется! Get It Now
1. После установки Kutools for Excel, нажмите Кутулс Плюс > Разделить книгу , см. снимок экрана:
2. В Разделить книгу диалоговом окне выполните следующие операции:
(1) По умолчанию отмечены все имена рабочих листов. Если вы не хотите разделять некоторые рабочие листы, вы можете снять с них отметку;
(2) Проверьте Сохранить тип вариант;
(3) Из Сохранить как в раскрывающемся списке выберите один тип файла, который вы хотите разделить и сохранить.
(4) Затем нажмите Трещина кнопку.
Внимание: Если вы не хотите разделять скрытые или пустые листы, вы можете проверить Пропустить скрытые листы or Пропускать пустые листы пунктом.
3. В диалоговом окне «Обзор папки» укажите папку назначения для сохранения разделенных отдельных файлов и нажмите кнопку OK кнопку.
Теперь проверенные листы сохраняются как новые отдельные книги. Каждая новая книга названа в соответствии с именем исходного листа. Смотрите скриншот:
Kutools for Excel‘s Разделить книгу Инструмент позволяет легко разделить активную книгу на отдельные файлы Excel (один файл содержит один рабочий лист), файлы CSV, файлы TXT или файлы PDF по мере необходимости. Вы можете настроить пропуск всех пустых и скрытых листов. Получите бесплатную пробную версию!
Демонстрация: разделите или сохраните каждый рабочий лист одной книги как отдельные файлы excel / txt / csv / pdf
Статьи по теме:
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Введение
Предположим, у нас есть рабочий лист с большим количеством данных, и нам нужно разделить данные на отдельные книги Excel на основе столбца «Категория». Решить данную проблему возможно ручным способом, применяя инструмент фильтрации данных. Однако повторное копирование данных потребует терпения.
Как быстро разделить таблицу Excel на отдельные книги макросом. Пошаговый алгоритм
- Сочетанием клавиш Alt+F11 открываем окно Visual Basic
- Создаем новый модуль Insert -> Module
- Вставляем код
Sub Разделить_столбец_по_книгам()
Const column = 2 'номер столбца, по которому будет происходить разделение.'
Const head = True
Set wbAct = ActiveWorkbook
Set dic = CreateObject("Scripting.Dictionary")
lr = Cells(Rows.Count, 1).End(xlUp).Row
lc = Cells(1, Columns.Count).End(xlToLeft).column
arr = Range("A1", Cells(lr, lc)).Value
If head Then fr = 2 Else fr = 1
For i = fr To UBound(arr)
If Trim(arr(i, column)) <> "" Then dic.Item(arr(i, column)) = dic.Item(arr(i, column)) & "|" & i
Next
iPath = wbAct.Path & Application.PathSeparator & "Result" & Application.PathSeparator
'Result - название папки с результатами'
If Dir(iPath, vbDirectory) = "" Then MkDir iPath
arrDic = dic.keys
Set Rng = Nothing
Application.DisplayAlerts = False
For i = 0 To UBound(arrDic)
rrs = Split(Mid(dic.Item(arrDic(i)), 2), "|")
If head Then Set Rng = Rows(1)
For Each rr In rrs
If Not Rng Is Nothing Then Set Rng = Union(Rows(rr), Rng) Else Set Rng = Rows(rr)
Next
Set wb = Workbooks.Add(1)
Set sh = wb.Sheets(1)
Rng.Copy
sh.[A1].PasteSpecial xlPasteColumnWidths
sh.[A1].PasteSpecial xlPasteAll
Set Rng = Nothing
wb.SaveAs iPath & Replace_symbols(arrDic(i)) & ".xlsx", xlOpenXMLWorkbook
wb.Close False
Next
Application.DisplayAlerts = True
End Sub
'Замена запрещённых символов в имени файла или папки'
Function Replace_symbols(ByVal txt As String) As String
St$ = "\/~!@#$%^&*=|`'"""
For i% = 1 To Len(St$)
txt = Replace(txt, Mid(St$, i, 1), "_")
Next
Replace_symbols = txt
End Function
- На второй строке кода, цифру 2 замените на номер столбца, в котором содержится критерий для разбиения
- Сохраните код Ctrl+S
- Сохраните файл Excel, как книгу с поддержкой макросов xlsm
- Выполните макрос Alt+F8
Папка с новыми файлами будет лежать по тому же пути, что и файл, в котором вы запускали макрос
Заключение
С помощью этого руководства и готового кода макроса Вы сможете сэкономить свое время и за несколько минут создать столько книг Excel, сколько уникальных значений в выбранном Вами столбце. Вся остальная информация автоматически перенесется в новые книги.
У нас Вы можете заказать выполнение задач по MS Excel и Google таблицам
А также, пройти бесплатные онлайн курсы по MS Excel с заданиями
На чтение 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 разделителя документов?
Прежде всего, вам нужно выбрать и добавить 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.
Разделитель Excel документов
Разделите Excel на несколько файлов онлайн. Используйте разделитель Excel документов с любого устройства с современным браузером вроде Chrome и Firefox.
Отправить ссылку на скачивание
Excel Файлы электронных таблиц
Файл электронной таблицы содержит данные в виде строк и столбцов. Вы можете открывать, просматривать и редактировать такие файлы с помощью приложений для работы с электронными таблицами, таких как Microsoft Excel, которые теперь доступны как для операционных систем Windows, так и для MacOS. Точно так же Google Sheets — это бесплатный онлайн-инструмент для создания и редактирования электронных таблиц, который работает в любом веб-браузере.
- Легкое разделение Excel страниц документа
- Отделить страницы от Excel файла
- Загрузка или отправка результирующего файла в виде вложения электронной почты
Как разделить Excel документ онлайн
- Выберите и загрузите Excel документ, который хотите разделить.
- Укажите необходимые номера страниц и нажмите кнопку Разделить.
- Нажмите кнопку Скачать и сохраните разделенный Excel документ.
- Чтобы отправить ссылку на скачивание документа по электронной почте нажмите кнопку Email.
ВОПРОСЫ И ОТВЕТЫ
Другие форматы, поддерживаемые GroupDocs.Splitter
Вы также можете разделять документы других форматов. Полный список представлен ниже.
Сохранение листов книги как отдельных файлов
Про сборку листов из нескольких книг в одну текущую я уже писал здесь. Теперь разберем решение обратной задачи: есть одна книга Excel, которую нужно «разобрать», т.е. сохранить каждый лист как отдельный файл для дальнейшего использования.
Примеров подобного из реальной жизни можно привести массу. Например, файл-отчет с листами-филиалами нужно разделить на отдельные книги по листам, чтобы передать затем данные в каждый филиал и т.д.
Если делать эту процедуру вручную, то придется для каждого листа выполнить немаленькую цепочку действий (выбрать лист, правой кнопкой по ярлычку листа, выбрать Копировать, указать отдельный предварительно созданный пустой файл и т.д.) Гораздо проще использовать короткий макрос, автоматизирующий эти действия.
Способ 1. Простое разделение
Нажмите сочетание Alt+F11 или выберите в меню Сервис — Макрос — Редактор Visual Basic (Tools — Macro — Visual Basic Editor) , вставьте новый модуль через меню Insert — Module и скопируйте туда текст этого макроса:
Если теперь выйти из редактора Visual Basic и вернуться в Excel, а затем запустить наш макрос (Alt+F8), то все листы из текущей книги будут разбиты по отдельным новым созданным книгам.
Способ 2. Разделение с сохранением
При необходимости, можно созданные книги сразу же сохранять под именами листов. Для этого макрос придется немного изменить, добавив команду сохранения в цикл:
Этот макрос сохраняет новые книги-листы в ту же папку, где лежал исходный файл. При необходимости сохранения в другое место, замените wb.Path на свой путь в кавычках, например «D:Отчеты2012» и т.п.
Если нужно сохранять файлы не в стандартном формате книги Excel (xlsx), а в других (xls, xlsm, xlsb, txt и т.д.), то кроме очевидного изменения расширения на нужное, потребуется добавить еще и уточнение формата файла — параметр FileFormat:
Для основных типов файлов значения параметра FileFormat следующие:
- XLSX = 51
- XLSM = 52
- XLSB = 50
- XLS = 56
- TXT = 42
Способ 3. Сохранение в новые книги только выделенных листов
Если вы хотите раскидать по файлам не все листы в вашей книге, а только некоторые, то макрос придется немного изменить. Выделите нужные вам листы в книге, удерживая на клавиатуре клавишу Ctrl или Shift и запустите приведенный ниже макрос:
Создавать новое окно и копировать через него, а не напрямую, приходится потому, что Excel не умеет копировать группу листов, если среди них есть листы с умными таблицами. Копирование через новое окно позволяет такую проблему обойти.
Способ 4. Сохранение только выделенных листов в новый файл
Во всех описанных выше способах каждый лист сохранялся в свой отдельный файл. Если же вы хотите сохранить в отдельный новый файл сразу группу выделенных предварительно листов, то нам потребуется слегка видоизменить наш макрос:
Способ 5. Сохранение листов как отдельных PDF-файлов
- для этого используется уже другой метод (ExportAsFixedFormat а не Copy)
- листы выводятся в PDF с параметрами печати, настроенными на вкладке Разметка страницы (Page Layout)
- книга должна быть сохранена на момент экспорта
Нужный нам код будет выглядеть следующим образом:
Способ 6. Готовый макрос из надстройки PLEX
Если лень или нет времени внедрять все вышеописанное, то можно воспользоваться готовым макросом из моей надстройки PLEX:
Как разделить вкладки в excel на два отдельных файла
Как разделить вкладки в Excel?
- Выделите ячейку в том месте, где необходимо разделить лист. …
- Откройте вкладку Вид на Ленте, а затем нажмите команду Разделить.
- Лист будет разделен на несколько областей.
Как разделить окна в Excel на два монитора?
- Откройте первый файл Excel, к которому вы хотите получить доступ, и поместите его на монитор.
- Откройте второй экземпляр Excel на мониторе № 2, выбрав « Пуск»> «Программы»> «Microsoft Office»> «Excel» .
- Переместите этот второй экземпляр Excel в Monitor # 2 .
Как разделить одну таблицу на две в Excel?
- Установить курсор мыши на нужную строку таблицы, и нажать сочетание клавиш Ctrl+Shift+Enter. Таблица разделится на 2 части
- Выбираете меню «Файл — Работа с таблицами — Макет», и в нем находите и выбираете пункт «Разбить таблицу». Работа с таблицами Макет Разделить таблицу
Как открыть 2 файла Excel на одном мониторе?
- Откройте обе книги, которые содержат листы для сравнения.
- На вкладке Вид в группе Окно выберите команду Рядом . …
- В окне каждой книги щелкните лист, который нужно сравнить.
Как вывести на экран два файла Excel?
- После открытия перейдите в панели быстрого доступа на вкладку «Вид».
- После нажатия на пиктограмму «Упорядочить все» на экране появится окошко с контекстным меню, предлагающим выбор расположения окон:
Как разделить таблицу в Excel по вертикали?
- Щелкните ячейку таблицы, которую вы хотите разделить.
- В разделе Работа с таблицами на вкладке Макет в группе Объединение нажмите кнопку Разделить ячейки и сделайте следующее: Для разделения ячейки по вертикали в поле Число столбцов введите нужное число новых ячеек.
- Щелкните ячейку в таблице, из которой вы хотите отделиться, и в Работа с таблицами вкладку нажмите макет > Разделить таблицу, см. …
- И таблица была разделена на две таблицы по горизонтали, как показано на следующем снимке экрана:
Как разделить Excel?
- Выделите одну или несколько ячеек, которые хотите разделить. …
- На вкладке Данные в группе Работа с данными нажмите кнопку Текст по столбцам. …
- Установите переключатель С разделителями, если выбран другой вариант, и нажмите кнопку Далее.
- Щелкните правой кнопкой мыши по значку Excel на панели задач и выберите Microsoft Excel 2010 (или 2007): Затем перейдите в меню File (Файл) > Open (Открыть) и выберите вашу вторую книгу.
- Щелкните по значку программы на панели задач, удерживая клавишу Shift.
Как разделить окно (лист) в Excel Reviewed by Unknown on 2016-01-21T23:56:00+02:00 Rating: 5
Как разделить окно (лист) в Excel
Разделение листов и просмотр книги Excel в разных окнах
- Откройте вкладку Вид на Ленте, а затем выберите команду Новое окно.
- Откроется новое окно для текущей книги.
- Теперь Вы можете сравнивать листы одной и той же книги в разных окнах. В нашем примере мы выберем отчет по продажам за 2013 год, чтобы сравнить продажи в 2012 и в 2013 годах.
- Выделите ячейку в том месте, где необходимо разделить лист. Если Вы выберите ячейку в первом столбце или первой строке, то лист разделится на 2 части, в противном случае на 4. В нашем примере мы выберем ячейку C7.
- Откройте вкладку Вид на Ленте, а затем нажмите команду Разделить.
- Лист будет разделен на несколько областей. Вы можете прокручивать каждую область отдельно, используя полосы прокрутки. Это позволит Вам сравнивать различные разделы одного и того же листа.
Содержание:
- Разделить каждый лист на отдельный файл Excel
- Разделить каждый рабочий лист и сохранить как отдельные PDF-файлы
- Разделите только те рабочие листы, которые содержат слово / фразу, в отдельные файлы Excel
Если у вас есть книга Excel с большим количеством листов, нет простого способа разделить каждый из этих листов на отдельные файлы Excel и сохранить отдельно.
Это может потребоваться, когда вы составляете листы за разные месяцы или регионы, продукты / клиенты и хотите быстро получить отдельную книгу для каждого листа (в виде файла Excel или PDF).
Хотя существует способ вручную разделить листы на отдельные книги, а затем сохранить их, он неэффективен и подвержен ошибкам.
В этом руководстве я дам вам простой код VBA, который вы можете использовать, чтобы быстро (за несколько секунд) разделить все рабочие листы на отдельные файлы, а затем сохранить их в любой указанной папке.
Разделить каждый лист на отдельный файл Excel
Предположим, у вас есть рабочая тетрадь, как показано ниже, где у вас есть лист на каждый месяц.
Чтобы разделить эти листы в отдельный файл Excel, вы можете использовать приведенный ниже код VBA:'Код, созданный Sumit Bansal из trumpexcel.com 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 Имя файла: = FPath & "" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Перед использованием приведенного выше кода VBA необходимо убедиться в нескольких вещах:
- Создайте папку, в которой вы хотите получить все полученные файлы.
- Сохраните основной файл Excel (в котором есть все нужные вам рабочие листы в виде отдельных файлов) в этой папке.
Как только вы это сделаете, вы можете поместить указанный выше код VBA в файл и запустить его.
Приведенный выше код написан таким образом, что он выбирает местоположение папки, используя путь к файлу (в котором выполняется код). Вот почему важно сначала сохранить файл в папке, а затем использовать этот код.
Как работает код VBA — В приведенном выше коде используется простой цикл For Next, который проходит через каждый рабочий лист, создает копию рабочего листа в книге Excel, а затем сохраняет эту книгу Excel в указанной папке (которая совпадает с основным файлом со всеми листов).
Ниже приведены шаги по размещению этого кода VBA в книге Excel (они будут такими же для всех других методов, показанных в этом руководстве):
Куда поставить этот код?
Ниже приведены шаги по размещению кода в редакторе Visual Basic, где он может быть выполнен:
Вышеупомянутые шаги мгновенно разделят рабочие листы на отдельные файлы Excel и сохранят их. Если у вас меньше листов, это займет всего секунду. Если у вас много, это может занять некоторое время.
Имя каждого сохраненного файла совпадает с именем листа в основном файле.
Поскольку вы поместили код VBA в книгу Excel, вам необходимо сохранить его в формате .XLSM (который является форматом с поддержкой макросов). Это гарантирует, что макрос будет сохранен и будет работать, когда вы откроете этот файл в следующий раз.
Обратите внимание, что я использовал строки Application.ScreenUpdating = False и Application.DisplayAlerts = False в коде, чтобы все происходило в серверной части и не видеть, что происходит на вашем экране. Как только код запускается, разделяет листы и сохраняет их, мы возвращаем им значение ИСТИНА.
Рекомендуется создать резервную копию основного файла (в котором есть листы, которые вы хотите разделить). Это гарантирует, что вы не потеряете свои данные в случае, если что-то пойдет не так, или если Excel решит замедлить работу или дать сбой.
Разделить каждый рабочий лист и сохранить как отдельные PDF-файлы
Если вы хотите разделить листы и сохранить их как файлы PDF вместо файлов Excel, вы можете использовать следующий код:'Код, созданный Sumit Bansal из trumpexcel.com 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.ExportAsport Введите: = xlTypePDF, Имя файла: = FPath & "" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
Перед использованием этого кода необходимо убедиться в следующем:
- Создайте папку, в которой вы хотите получить все полученные файлы.
- Сохраните основной файл Excel (в котором есть все нужные вам рабочие листы в виде отдельных файлов) в этой папке.
Приведенный выше код разделяет каждый лист в файле Excel и сохраняет его в формате PDF в той же папке, где вы сохранили основной файл Excel.
Разделите только те рабочие листы, которые содержат слово / фразу, в отдельные файлы Excel
Если у вас много листов в книге, и вы хотите разделить только те листы, в которых есть определенный текст, вы также можете это сделать.
Например, предположим, что у вас есть файл Excel, содержащий данные за несколько лет, и каждый лист в файле имеет номер года в качестве префикса. Что-то вроде того, что показано ниже:
Теперь предположим, что вы хотите разделить все листы на период с 21 по 2022 год и сохранить их в виде отдельных файлов Excel. Для этого вам нужно как-то проверить имя каждого рабочего листа, и только те листы, которые имеют номер 2021-2022, должны быть разделены и сохранены, а остальные должны быть оставлены нетронутыми.
Это можно сделать с помощью следующего макроса VBA:'Код, созданный Sumit Bansal из trumpexcel.com 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. Таблицы Если InStr (1, ws.Name, TexttoFind, vbBinaryCompare) 0 Тогда ws.Copy Application.ActiveWorkbook.SaveAs Имя файла: = FPath & "" & ws.Name & ".xlsx" Application.ActiveWorkbook.Close False End If Next Application.DisplayAlerts = True Application.ScreenUpdating = True End Sub
В приведенном выше коде я использовал переменную TexttoFind, которой изначально было присвоено значение «2020».
Затем код VBA использует цикл For Next в VBA для просмотра каждого рабочего листа, а затем проверяет имя каждой функции INSTR рабочего листа. Эта функция проверяет, есть ли в имени листа слово 2021-2022 или нет. Если это так, он вернет номер позиции, в которой он нашел этот текст (в данном случае это 2021-2022 годы).
И если он не находит искомый текст, он возвращает 0.
Это используется с условием IF Then. Поэтому, если имя листа содержит текстовую строку 2021-2022, оно будет разделено и сохранено как отдельный файл. И если у него нет этой текстовой строки, условие IF не будет выполнено, и ничего не произойдет.