Макрос VBA для разделения целых строк на несколько строк
С помощью этого макроса вы разделяете целые строки на несколько строк. Вы можете выбрать, сколько столбцов вы хотите после разделения. просто измените значение для iSplit
в первой строке. Я не использую определенный разделитель, просто количество столбцов.
Я прокомментировал каждый шаг. Макрос легко настроить в соответствии с вашими потребностями.
- Откройте редактор Excel и VBA с помощью Alt+F11
- На левой панели вставьте код под лист, где размещены ваши данные
- Измените первые две строки в соответствии с вашими потребностями
- Выполнить макрос с помощью F5
Const iSplit = 4 '## how many columns do you want after splitting
Sub transposeColumn()
'## search the last row to know how many rows we have to iterate through
iLastRow = Cells.Find("*", [A1], , , xlByRows, xlPrevious).Row
'## begin to loop through every row. Begin at last row and go upwards
For r = iLastRow To 1 Step -1
'## search the last column in the current row
iLastCol = Rows(r).Find("*", Cells(r, 1), , , xlByColumns, xlPrevious).Column
'## calculate how many new rows we need to insert for this row
iNewRows = WorksheetFunction.RoundUp(iLastCol / iSplit, 0) - 1
'## begin to copy and insert new rows, one by one
For c = 1 To iNewRows
'## insert a new blank line where we can copy values to
Rows(r + c).Insert Shift:=xlDown
'## set the source range for easier access later
Set rngSrc = Range(Cells(r, iSplit * c + 1), Cells(r, iSplit * c + iSplit))
'## copy and paste the range
rngSrc.Copy Destination:=Cells(r + c, 1)
'## clear all cells which we have just copied
rngSrc.Clear
Next c
Next r
End Sub