В этой статье мы создадим макрос для разделения данных на определенное количество строк.

У нас есть необработанные данные в листе «RawData». Мы хотим разделить эти данные на несколько листов.

ArrowRawData

ArrowMain

Перед запуском макроса нам нужно указать количество строк, необходимых на каждом листе.

ArrowOutput

Объяснение кода

CntRows = Cint (Sheets («Main»). TextBox1.Value)

Приведенный выше код используется для подсчета количества листов, необходимых на листе.

LastRow = .Range («A» & .Rows.Count) .End (xlUp) .Row Приведенный выше код используется для получения номера строки последней ячейки.

Листы.Добавить после: = Листы (Sheets.Count)

Приведенный выше код используется для добавления нового листа после последнего листа.

Range («A» & n) .Resize (CntRows, LastColumn) .Copy Range («A1»)

Приведенный выше код используется для копирования указанного количества строк на новый рабочий лист.

Пожалуйста, введите код ниже

Option Explicit

Sub SplitDataToMultipleSheets()

'Declaring variables

Dim LastRow As Long, n As Long, CntRows As Long

Dim LastColumn As Integer

'Getting count of number of rows required in one sheet

CntRows = CInt(Sheets("Main").TextBox1.Value)

'Disabling screen updates

Application.ScreenUpdating = False

With Sheets("RawData")



'Getting row number and column number of last cell

LastRow = .Range("A" & .Rows.Count).End(xlUp).Row

LastColumn = .Range("A1").SpecialCells(xlCellTypeLastCell).Column



'Looping through data in the sheet

For n = 1 To LastRow Step CntRows



'Adding new worksheet

Sheets.Add after:=Sheets(Sheets.Count)

'Copying data to new worksheet

.Range("A" & n).Resize(CntRows, LastColumn).Copy Range("A1")

Next n



.Activate

End With

'Enabling screen updates

Application.ScreenUpdating = True

End Sub

Если вам понравился этот блог, поделитесь им с друзьями на Facebook и Facebook.

Мы будем рады услышать от вас, дайте нам знать, как мы можем улучшить нашу работу и сделать ее лучше для вас. Напишите нам на [email protected]