Разделете данните в лист по определен брой редове, като използвате VBA в Microsoft Excel

Anonim

В тази статия ще създадем макрос за разделяне на данните по определен брой редове.

Имаме необработени данни в лист „RawData“. Искаме да разделим тези данни на няколко листа.

Преди да стартираме макроса, трябва да посочим необходимия брой редове във всеки лист.

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

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

Горният код се използва за получаване на броя на необходимите листове в един лист.

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

Горният код се използва за получаване на номера на реда на последната клетка.

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

Горният код се използва за добавяне на нов лист след последния лист.

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

Горният код се използва за копиране на определен брой редове в нов работен лист.

Моля, следвайте кода по -долу

 Опция Explicit Sub SplitDataToMultipleSheets () 'Деклариране на променливи Dim LastRow As Long, n As Long, CntRows As Long Dim LastColumn As Integer' Получаване на броя на необходимите редове в един лист CntRows = CInt (Sheets ("Main"). TextBox1.Value ) 'Деактивиране на актуализациите на екрана Application.ScreenUpdating = False With Sheets ("RawData") "Получаване на номер на ред и колона на последната клетка LastRow = .Range (" A "& .Rows.Count) .End (xlUp) .Row LastColumn = .Range ("A1"). SpecialCells (xlCellTypeLastCell) .Колона 'Циклично прехвърляне на данни в листа За n = 1 към LastRow Стъпка CntRows' Добавяне на нови работни листове. Добавяне след: = Sheets (Sheets.Count) 'Копиране на данни в нови работен лист .Range ("A" & n) .Resize (CntRows, LastColumn) .Copy Range ("A1") Next n. Активирайте End With 'Активиране на актуализации на екрана Application.ScreenUpdating = True End Sub 

Ако този блог ви е харесал, споделете го с приятелите си във Facebook. Също така можете да ни следвате в Twitter и Facebook.

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