Macro de VBA para dividir filas enteras en varias filas
Con esta macro, divide filas enteras en varias filas. Puedes elegir cuántas columnas quieres después de dividir. simplemente cambie el valor de iSplit
en la primera línea. No uso un delimitador específico, solo conteo de columnas.
Comenté cada paso. Es fácil ajustar la macro a sus necesidades personales.
- Abra el editor de Excel y VBA con Alt+F11
- En el panel izquierdo, pegue el código debajo de la hoja donde se colocan sus datos
- Modifique las dos primeras líneas según sus necesidades.
- Ejecute la macro con 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
echo "Your string" | perl -pe 's/([^;]*);([^;]*);([^;]*);([^;]*);?/$1,$2,$3,$4\n/g'
e importar el resultado como CSV. ¿Realmente necesita una solución que use LO / OO / Excel y nada más?