Перейти к содержимому

Как создать новые листы для каждой строки в Excel?

Author: Siluvia Last Modified: 2025-08-07

При работе с управлением данными или задачами создания отчетов иногда может потребоваться разделить каждую запись из таблицы на отдельные рабочие листы. Например, если вы ведете список данных студентов в Excel, где каждая строка представляет информацию о разных студентах, вам может понадобиться создать отдельный лист для каждого студента, содержащий его конкретные данные. Или вы можете просто захотеть разделить каждую строку независимо от её содержания, чтобы каждая была помещена в новый рабочий лист. Создание и копирование данных вручную может быть трудоемким и подверженным ошибкам, особенно при работе с большим набором данных. Автоматизация этого процесса экономит значительное время и снижает риск ошибок. Данное руководство проведет вас через два практических решения для создания новых листов для каждой строки в Excel и объяснит плюсы и минусы каждого метода, чтобы помочь выбрать лучший подход для вашего случая.

Создание новых листов для каждой строки с помощью кода VBA
Создание новых листов для каждой строки с помощью функции Разделить данные Kutools для Excel


Создание новых листов для каждой строки с помощью кода VBA

Использование VBA (Visual Basic для приложений) является эффективным способом автоматизации задач Excel, которые иначе были бы утомительными и повторяющимися. С помощью VBA можно быстро создавать новые рабочие листы для каждой строки ваших данных, либо группируя строки на основе столбца (например, имени студента), либо создавая один лист для каждой строки независимо от содержимого. Этот подход идеален для пользователей, знакомых с редактором 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 или кнопку Выполнить, чтобы выполнить код. После всех существующих листов в текущей книге будут созданы новые рабочие листы, каждый из которых будет назван в соответствии с выбранным уникальным значением столбца. См. скриншот ниже для примера результата.

A screenshot showing a new workbook with sheets created from each row based on column value

Если вы хотите просто разделить каждую строку на свой собственный рабочий лист независимо от содержания столбца, вы можете использовать следующий альтернативный код 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, которую необходимо установить заранее.

Kutools для Excel предлагает более 300 продвинутых функций для упрощения сложных задач, повышая креативность и эффективность. Интеграция с возможностями ИИ позволяет Kutools автоматизировать задачи с высокой точностью, делая управление данными без усилий. Подробная информация о Kutools для Excel...  Бесплатная пробная версия...

1. Выберите таблицу, содержащую данные, которые вы хотите разделить на отдельные рабочие листы. Затем нажмите вкладку Kutools Plus и выберите Разделить данные. См. скриншот ниже для наглядности:

A screenshot of the 'Split Data' option under the Kutools Plus tab in Excel

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

A. Чтобы создать новые листы на основе значений столбцов:

1). Выберите опцию Указать столбец и укажите столбец, который вы хотите использовать как основу для разделения — обычно уникальный идентификатор, такой как имя студента или ID.
2). Если вы хотите, чтобы каждый лист был назван в соответствии со значением в этом столбце, выберите Значения столбца из выпадающего меню Правила.
3). Нажмите OK для выполнения разделения. См. скриншот ниже:

A screenshot of the 'Split Data into Multiple Worksheets' dialog box with settings for splitting by column value

B. Чтобы напрямую создать новые листы для каждой строки:

1). Выберите опцию Фиксированное количество строк и введите 1 в поле, чтобы указать, что каждый рабочий лист должен содержать только одну строку данных.
2). В выпадающем списке Правила выберите Номера строк, чтобы помечать каждый лист по его индексу строки.
3). Нажмите OK, чтобы начать процесс разделения. См. скриншот ниже:

A screenshot of the 'Split Data into Multiple Worksheets' dialog box with settings for splitting by row

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

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

A screenshot showing a new workbook with sheets created from each row based on column value

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

A screenshot showing a new workbook with sheets created from each row without considering the column value

Меры предосторожности и практические советы:
- Перед использованием функции Разделить данные убедитесь, что в вашей таблице нет пустых строк, так как они могут привести к созданию пустых листов.
- Проверьте соглашения об именовании листов, чтобы избежать дублирующихся или недопустимых названий рабочих листов; Kutools автоматически скорректирует название в случае конфликта.
- Процесс может создать большое количество рабочих листов, если ваша таблица очень большая, поэтому учтите это перед началом.

Преимущества: Легко использовать без необходимости написания кода; подходит для пакетной обработки и частых задач.
Недостатки: Требуется установка надстройки Kutools.
Подходит для: Пользователи Excel всех уровней, особенно те, кто работает с регулярным сегментированием данных.

Kutools для Excel - Усильте Excel более чем 300 необходимыми инструментами. Наслаждайтесь постоянно бесплатными функциями ИИ! Получите прямо сейчас


Демонстрация: Создание новых листов для каждой строки с помощью функции Разделить данные Kutools для Excel

 
Kutools для Excel: Более 300 удобных инструментов у вас под рукой! Наслаждайтесь постоянно бесплатными функциями ИИ! Скачать сейчас!

Лучшие инструменты для повышения продуктивности в Office

🤖 Kutools AI Aide: Переворот в анализе данных на основе: Интеллектуальное выполнение   |  Сгенерировать код  |  Создать Пользовательские Формулы  |  Анализ данных и генерация диаграмм  |  Вызов Kutools Functions
Популярные функции: Найти, выделить или отметить дубликаты   |  Удалить пустые строки   |  Объединить столбцы или ячейки без потери данных   |   Округлить...
Супер ПОИСК: VLookup с несколькими критериями    VLookup с несколькими значениями  |   Многолистовой поиск   |   Распознавание нечетких соответствий ....
Расширенный раскрывающийся список: Быстро создать раскр. список   |  Зависимый раскрывающийся список   |  Множественный выбор в раскрывающемся списке ....
Менеджер столбцов: Добавить определенное количество столбцов  |  Переместить столбцы  |  Переключить статус видимости скрытых столбцов  |  Сравнить диапазоны и столбцы ...
Рекомендуемые функции: Сетка фокусировки   |  Дизайн листа   |   Улучшенная строка формулы    Управление книгой и листами   |  Библиотека автотекста (Auto Text)   |  Выбор даты   |  Объединить данные   |  Шифрование/Расшифровка ячеек    Отправить письмо по списку   |  Супер фильтр   |   Специальный фильтр (фильтр по жирному/курсиву/зачеркиванию...) ...
Топ–15 наборов инструментов: 12 текстовых инструментов (Добавить текст, Удалить определенные символы, ...)   |   50+ типов диаграмм (Диаграмма Ганта, ...)   |   40+ практических формул (Расчет возраста на основе даты рождения, ...)   |   19 инструментов вставки (Вставить QR-код, Вставить изображение из пути, ...)   |  12 инструментов преобразования (Преобразовать в слова, Конвертация валюты, ...)   |  7 инструментов объединения и разделения (Расширенное объединение строк, Разделить ячейки, ...)   |   ... и многое другое
Используйте Kutools на вашем предпочитаемом языке – поддерживаются английский, испанский, немецкий, французский, китайский и более40 других языков!

Повысьте свои навыки работы в Excel с Kutools для Excel и ощутите новую эффективность. Kutools для Excel предлагает более300 расширенных функций для повышения продуктивности и экономии времени.  Щелкните здесь, чтобы получить наиболее нужную вам функцию...


Office Tab добавляет вкладочный интерфейс в Office, делая вашу работу значительно проще

  • Включите редактирование и чтение во вкладках в Word, Excel, PowerPoint, Publisher, Access, Visio и Project.
  • Открывайте и создавайте несколько документов во вкладках одного окна, а не в новых окнах.
  • Увеличьте свою продуктивность на50% и сократите сотни кликов мышью ежедневно!