Как разбить файл excel на несколько файлов, не зная заранее, точное количество строк, в которых следует указывать Excel для разделения, но только знание грубое число, где нужно разделить?Таблицу с разделителями Excel с переменным числом строк (например, около 5000 строк плюс макс. 1000)
Пример: Всего 100 000 строк. В столбце A у меня много строк, которые начинаются с одного и того же содержимого ячейки. Я знаю, что у меня есть максимум 1000 строк, которые имеют одинаковое содержимое столбца A.
строка #: Колонка A Содержание:
Row1: namedBB
row2: namedBB
...
row251: namedBB
row252: namedCC
. ..
row4,999: namedDD
row5,000: namedDD
...
row5,365: namedDD
row5,366: namedKEI
. ..etc ...
В этом примере я хотел бы разделить файл на eac h 5000 строк. Но на самом деле первый сплит должен быть точно на 5,366 (поэтому первый файл xslx будет иметь контент от строки1 до строки5,365, а второй файл xslx будет иметь от строки 5,366 до? ...).
Вот код VBA, который я использую для разделения с фиксированным количеством строк.
Sub Splitter_fixed_number_of_rows()
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim lTop As Long, lBottom, lCopy As Long
Dim LastRow As Long, LastCol As Long
Dim wbNew As Workbook, sPath As String
With ThisWorkbook.Sheets("recap") ' sheetname to adapt
LastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
LastCol = .Cells(1, .Columns.Count).End(xlToLeft).Column
lTop = 2
Do
lBottom = lTop + 5000 ' fixed number of row where to split //to adapt
If lBottom > LastRow Then lBottom = LastRow
lCopy = lCopy + 1
Set wbNew = Workbooks.Add
.Range(.Cells(1, 1), .Cells(1, LastCol)).Copy
wbNew.Sheets(1).Range("A1").PasteSpecial
.Range(.Cells(lTop, 1), .Cells(lBottom, LastCol)).Copy
wbNew.Sheets(1).Range("A2").PasteSpecial
wbNew.SaveAs Filename:="TEST_" & Application.ActiveWorkbook.FullName & lCopy, FileFormat:=xlOpenXMLWorkbook ' split into .xslx files
wbNew.Close
lTop = lBottom + 1
Loop While lTop <= LastRow
End With
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
Спасибо;)
Можете ли вы определить, как «примерно 5000» и «5000» строки вычисляются? Компьютер не может «грубо» что-то сделать. Вам нужно придумать, как отделить ваши данные, прежде чем мы сможем вам помочь. – ApplePie
Спасибо за ваш вопрос. Это может быть минимум 5000 строк и максимум 6000 строк. Способ найти, где именно разделить файл, - найти, где содержимое столбца изменяется после 5000 (но до 6000). В этом примере содержимое ячеек A5000 - A5365 одинаково. И начиная с ячейки A5366, контент меняется. Пожалуйста, дайте мне знать, если это не более понятно. Заранее спасибо;) – miodf
Из того, что я читаю, контент не разбивается на указанное количество строк, а по содержанию в каждой строке? – Davesexcel