Как создать отдельный лист в Excel для каждой строки?
При работе с данными или составлении отчётов иногда требуется разделить каждую запись из таблицы на отдельный лист. Например, если вы ведёте список данных о студентах в Excel, где каждая строка содержит информацию об отдельном студенте, вы можете захотеть создать отдельный лист для каждого студента с его персональными данными. Альтернативно, вы можете просто разделить каждую строку — независимо от её содержимого — так, чтобы каждая находилась на отдельном Новый лист. Ручное создание и копирование данных на новые листы может быть трудоёмким и чреватым ошибками, особенно при работе с большим объёмом данных. Автоматизация этого процесса значительно экономит время и снижает риск ошибок. В данном руководстве описаны два практических решения для создания новых листов по каждой строке в Excel, а также приведены преимущества и недостатки каждого метода, чтобы помочь вам выбрать оптимальный подход для вашей задачи.
Создание новых листов для каждой строки с помощью кода VBA
Создание новых листов для каждой строки с помощью утилиты Разделить данные из Kutools для Excel
Создание новых листов для каждой строки с помощью кода VBA
Использование VBA (Visual Basic for Applications) — эффективный способ автоматизации рутинных и повторяющихся задач в Excel. С помощью VBA вы можете быстро создавать Новый лист для каждой строки ваших данных — either by grouping rows based on a column (such as a student name) или создавая отдельный лист для каждой строки независимо от её содержимого. Такой подход идеально подходит пользователям, знакомым с редактором VBA и предпочитающим максимально гибкое решение. Однако он требует редактирования и запуска кода, поэтому может не подойти тем, кто не имеет опыта работы с VBA или не имеет разрешения на запуск макросов в своей среде.
1. Нажмите «Alt» + «F11», чтобы открыть окно Microsoft Visual Basic for Applications, которое даёт доступ к коду VBA для автоматизации операций в Excel.
2. В окне Microsoft Visual Basic for Applications выберите Вставка > Модуль, чтобы добавить новый модуль кода. Затем скопируйте и вставьте приведённый ниже код в окно модуля.
Код VBA: создание нового листа для каждой строки на основе столбца
Sub parse_data()
'Update by Extendoffice 2018/3/2
Dim xRCount As Long
Dim xSht As Worksheet
Dim xNSht As Worksheet
Dim I As Long
Dim xTRrow As Integer
Dim xCol As New Collection
Dim xTitle As String
Dim xSUpdate As Boolean
Set xSht = ActiveSheet
On Error Resume Next
xRCount = xSht.Cells(xSht.Rows.Count, 1).End(xlUp).Row
xTitle = "A1:C1"
xTRrow = xSht.Range(xTitle).Cells(1).Row
For I = 2 To xRCount
Call xCol.Add(xSht.Cells(I, 1).Text, xSht.Cells(I, 1).Text)
Next
xSUpdate = Application.ScreenUpdating
Application.ScreenUpdating = False
For I = 1 To xCol.Count
Call xSht.Range(xTitle).AutoFilter(1, CStr(xCol.Item(I)))
Set xNSht = Nothing
Set xNSht = Worksheets(CStr(xCol.Item(I)))
If xNSht Is Nothing Then
Set xNSht = Worksheets.Add(, Sheets(Sheets.Count))
xNSht.Name = CStr(xCol.Item(I))
Else
xNSht.Move , Sheets(Sheets.Count)
End If
xSht.Range("A" & xTRrow & ":A" & xRCount).EntireRow.Copy xNSht.Range("A1")
xNSht.Columns.AutoFit
Next
xSht.AutoFilterMode = False
xSht.Activate
Application.ScreenUpdating = xSUpdate
End Sub Пояснение параметров и советы по использованию:
- A1:C1 — это диапазон заголовков вашей таблицы данных. При необходимости скорректируйте эту ссылку, чтобы она точно соответствовала области заголовков ваших данных.
- Код извлекает уникальные значения из указанного столбца (по умолчанию — столбца A), и каждому уникальному значению соответствует отдельный лист со связанными строками.
- Если ваша таблица шире или начинается с другой строки, обновите
xTitleи ссылки на ячейки соответствующим образом. - Если ваш лист содержит формулы, ссылающиеся на другие листы, обязательно проверьте эти ссылки после разделения.
3. Нажмите клавишу F5 или выберите Выполнить, чтобы запустить код. После этого в текущей книге после всех существующих листов будут созданы новые листы, каждый из которых получит имя, соответствующее уникальному значению из выбранного столбца. Пример результата см. на скриншоте ниже:

Если вы хотите просто разместить каждую строку на отдельном листе, независимо от содержимого столбцов, воспользуйтесь приведённым ниже альтернативным кодом VBA — это избавит вас от необходимости задавать условие по столбцу.
Код VBA: прямое создание нового листа для каждой строки
Sub RowToSheet()
Dim xRow As Long
Dim I As Long
With ActiveSheet
xRow = .Range("A" & Rows.Count).End(xlUp).Row
For I = 1 To xRow
Worksheets.Add(, Sheets(Sheets.Count)).Name = "Row " & I
.Rows(I).Copy Sheets("Row " & I).Range("A1")
Next I
End With
End Sub После выполнения этого кода в модуле каждая строка активного листа — включая строку заголовков — будет скопирована на новый лист. Обратите внимание: строка заголовков также дублируется. Если вы хотите избежать этого, возможно, придётся вручную удалить или скорректировать созданные листы.
Устранение неполадок и практические советы:
– Если появляется ошибка вроде «Индекс за пределами диапазона», убедитесь, что имена листов не содержат недопустимых символов, или удалите дублирующиеся имена.
– Большие наборы данных могут привести к созданию множества листов, что замедлит работу Excel или затруднит навигацию. Подумайте, действительно ли стоит разделять на листы очень большие таблицы.
– Всегда делайте резервную копию данных перед запуском кода VBA, чтобы избежать случайной потери информации.
Преимущества: Бесплатно; высокая степень настройки.
Недостатки: Требует включённых макросов VBA и определённого опыта работы с редактором VBA; возможны ошибки кода при работе со сложными или нестандартными данными.
Подходит для: Пользователей, которым нужна гибкость сценариев, а также для разовых или нерегулярных задач.
Создание новых листов для каждой строки с помощью утилиты Разделить данные из Kutools для Excel
Если вы предпочитаете простой и удобный подход без написания кода, настоятельно рекомендуем воспользоваться утилитой Разделить данные из Kutools для Excel. Эта функция позволяет всего за несколько кликов быстро разделить данные на новый лист, значительно упрощая управление таблицами. Kutools особенно полезен пользователям, которые регулярно работают с большими и сложными файлами или отдают предпочтение графическому интерфейсу вместо ручного программирования. Обратите внимание: Kutools — это надстройка для Excel, которую необходимо установить заранее.
1. Выделите таблицу с данными, которые нужно разделить по отдельным листам. Затем перейдите на вкладку KUTOOLS PLUS и выберите Разделить данные. Для наглядности см. скриншот ниже:

2. В диалоговом окне Разделить данные на несколько листов выберите подходящие настройки в зависимости от ваших целей разделения.
A. Создание новых листов на основе значений из столбца:

B. Создание отдельного листа для каждой строки напрямую:

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

Создание нового листа для каждой строки без учёта значений столбцов:

Меры предосторожности и практические советы:
– Перед использованием утилиты «Разделить данные» убедитесь, что в вашей таблице нет пустых строк — они могут привести к созданию пустых листов.
– Проверьте правила именования листов, чтобы избежать дублирования или недопустимых имён; при конфликте Kutools автоматически скорректирует имя.
– Если ваша таблица очень большая, процесс может создать множество листов — примите это во внимание перед началом.
Преимущества: Простота использования без необходимости программирования; идеально подходит для пакетной обработки и регулярных задач.
Недостатки: Требует предварительной установки надстройки Kutools.
Подходит для: Пользователей любого уровня, особенно тех, кто часто сталкивается с повторяющимися задачами по разделению данных.
Kutools для Excel— раскройте весь потенциал Excel с помощью более чем 300 незаменимых инструментов, которые ускоряют и упрощают вашу работу, а также воспользуйтесь возможностями ИИ для более разумной обработки данных и повышения продуктивности.Получить сейчас
Демонстрация: создание новых листов для каждой строки с помощью утилиты Разделить данные из Kutools для Excel
Лучшие инструменты повышения продуктивности в Office
Раскройте весь потенциал Excel с помощью Kutools для Excel и ощутите эффективность как никогда раньше.Kutools для Excel предлагает более 300 расширенных функций для повышения продуктивности и Экономия времени.Нажмите здесь, чтобы получить нужную Вам функцию…
Office Tab добавляет в Office вкладки и значительно упрощает Вашу работу
- Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
- Открывайте и создавайте несколько документов во вкладках одного окна — вместо того чтобы использовать отдельные окна.
- Повышает вашу продуктивность на 50 % и экономит сотни кликов мышью каждый день!
Все надстройки Kutools — один установщик
Kutools for Office — набор надстроек для Excel, Word, Outlook и PowerPoint, а также Office Tab Pro, идеально подходящий командам, работающим с разными приложениями Office.
- Единый комплект— надстройки для Excel, Word, Outlook и PowerPoint + Office Tab Pro
- Один установщик, одна лицензия— настройка занимает считанные минуты (готово для MSI)
- Лучше работать вместе— оптимизированная продуктивность во всех приложениях Office
- 30-дневная полнофункциональная пробная версия— без регистрации и кредитной карты
- Лучшее соотношение цены и качества— экономия по сравнению с покупкой отдельных надстроек