Как разбить электронную таблицу на несколько таблиц с заданным количеством строк?

У меня есть таблица Excel (2007) с 433 строками (плюс строка заголовка вверху). Мне нужно разбить это на 43 отдельных файла электронных таблиц с 10 рядами каждый и один с остальными 3 строками. Было бы предпочтительнее иметь строку заголовка в верхней части каждой таблицы. Как я могу это сделать? FYI, я немного новичок, когда речь заходит о «более высоком уровне» функций Excel, подобных этому.

Благодаря!

Ваш макрос просто разбивает все строки в выбранном диапазоне, включая строку заголовка в первой строке (так что она появится только один раз, в первом файле). Я изменил макрос для того, что вы просите; это легко, просмотрите комментарии, которые я написал, чтобы посмотреть, что он делает.

Sub Test() Dim wb As Workbook Dim ThisSheet As Worksheet Dim NumOfColumns As Integer Dim RangeToCopy As Range Dim RangeOfHeader As Range 'data (range) of header row Dim WorkbookCounter As Integer Dim RowsInFile 'how many rows (incl. header) in new files? Application.ScreenUpdating = False 'Initialize data Set ThisSheet = ThisWorkbook.ActiveSheet NumOfColumns = ThisSheet.UsedRange.Columns.Count WorkbookCounter = 1 RowsInFile = 10 'as your example, just 10 rows per file 'Copy the data of the first row (header) Set RangeOfHeader = ThisSheet.Range(ThisSheet.Cells(1, 1), ThisSheet.Cells(1, NumOfColumns)) For p = 2 To ThisSheet.UsedRange.Rows.Count Step RowsInFile - 1 Set wb = Workbooks.Add 'Paste the header row in new file RangeOfHeader.Copy wb.Sheets(1).Range("A1") 'Paste the chunk of rows for this file Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 2, NumOfColumns)) RangeToCopy.Copy wb.Sheets(1).Range("A2") 'Save the new workbook, and close it wb.SaveAs ThisWorkbook.Path & "\test" & WorkbookCounter wb.Close 'Increment file counter WorkbookCounter = WorkbookCounter + 1 Next p Application.ScreenUpdating = True Set wb = Nothing End Sub 

Надеюсь это поможет.

Я обновил код @Fer Garcia для пользователей Mac;), изменение только в способе сохранения файлов

 Sub Test() Dim wb As Workbook Dim ThisSheet As Worksheet Dim NumOfColumns As Integer Dim RangeToCopy As Range Dim RangeOfHeader As Range 'data (range) of header row Dim WorkbookCounter As Integer Dim RowsInFile 'how many rows (incl. header) in new files? Application.ScreenUpdating = False 'Initialize data Set ThisSheet = ThisWorkbook.ActiveSheet NumOfColumns = ThisSheet.UsedRange.Columns.Count WorkbookCounter = 1 RowsInFile = 150 'as your example, just 10 rows per file 'Copy the data of the first row (header) Set RangeOfHeader = ThisSheet.Range(ThisSheet.Cells(1, 1), ThisSheet.Cells(1, NumOfColumns)) For p = 2 To ThisSheet.UsedRange.Rows.Count Step RowsInFile - 1 Set wb = Workbooks.Add 'Paste the header row in new file RangeOfHeader.Copy wb.Sheets(1).Range("A1") 'Paste the chunk of rows for this file Set RangeToCopy = ThisSheet.Range(ThisSheet.Cells(p, 1), ThisSheet.Cells(p + RowsInFile - 2, NumOfColumns)) RangeToCopy.Copy wb.Sheets(1).Range("A2") 'Save the new workbook, and close it wb.SaveAs "Test" & WorkbookCounter & ".xls", FileFormat:=57 wb.Close 'Increment file counter WorkbookCounter = WorkbookCounter + 1 Next p Application.ScreenUpdating = True Set wb = Nothing End Sub 
  • Range.Interior.Color Different между Excel 2007 и более поздними версиями
  • Как эффективно использовать WorkbookBeforeClose событие правильно?
  • Избегайте выполнения Runtime Error при выборе диапазона из WS, уже объявленного и установленного
  • Две функции на одном графике, в Excel (X не совпадают)
  • Динамический график в Excel 2007
  • В Excel существует ли способ форматировать панель формул, чтобы легче было читать длинные / множественные функции?
  • сделать одно значение ячейки 0, если другое значение ячейки> 0, используя excel
  • фильтр критериев для нескольких начинается с условия?
  • Формула Excel = сумма 2 столбца, найти максимальную сумму и получить данные из другого столбца, используя максимальную строку?
  • Есть ли лучший способ указать «нулевые» значения в Excel?
  • Как использовать функцию Excel ADDRESS внутри функции COUNT?
  • Interesting Posts

    Оставить даты как строки, используя функцию read_excel из pandas в python

    Excel – добавление чистых месяцев на сегодняшний день

    VBA – события прерывания в динамически создаваемом текстовом поле

    как отсортировать столбец в excel с помощью свойства c # InvokeMember?

    Excel Пользовательский формат Проверка символа

    Excel: значок подсчета, чтобы создать общий рейтинг в листе Excel

    Applescript – Сохранение размеров изображения при вставке изображений в Excel

    VBA для проверки скорости другой программы

    импорт данных из Excel на SQL Server 2008

    Я создаю файл Excel с помощью apache poi. но когда я открываю файл excell, он говорит, что искаженный файл нуждается в восстановлении

    Экспорт DataGridView в Excel (Microsoft.Office.Interop.Excel)

    Доступ к VBA, создающий неквалифицированную ссылку при циклировании через листы Excel

    Как разбить строку с текстом и цифрами в excel

    Скопировать вставку Excel Поддерживаемые файлы из одной папки в один Excel

    Сумма столбца значений, где отдельный столбец содержит дубликат

    Давайте будем гением компьютера.