Excel - Una macro para transferir datos de filas a columnas
Problema
Los datos ahora están en el siguiente formato.1 2 39 15 16 20 25
1
Esto tiene que venir en este formato.
12
3
9
15
dieciséis
20
25
1
Solución
Suposiciones- 1. Los datos comienzan desde la fila 1 y se deben copiar siempre en la columna A
- 2. Las filas se pueden insertar sin distorsión a los datos.
Sub TransposeSpecial ()Dim lMaxRows As Long 'max filas en la hoja
Dim lThisRow As Long 'se está procesando la fila
Dim iMaxCol As Integer 'max. Columna utilizada en la fila que se está procesando
lMaxRows = Cells (Rows.Count, "A"). End (xlUp) .Row
lThisRow = 1 'comienza desde la fila 1
Do While lThisRow <lMaxRows
iMaxCol = Cells (lThisRow, Columns.Count) .End (xlToLeft) .Column
Si (iMaxCol> 1) Entonces
Filas (lThisRow + 1 & ":" & lThisRow + iMaxCol - 1) .Insert
Rango (Células (lThisRow, 2), Células (lThisRow, iMaxCol)). Copiar
Rango ("A" & lThisRow + 1) .Seleccionar
Selection.PasteSpecial Paste: = xlPasteAll, Operation: = xlNone, SkipBlanks: = False, Transpose: = True
Rango (Células (lThisRow, 2), Células (lThisRow, iMaxCol)).
lThisRow = lThisRow + iMaxCol - 1
lMaxRows = Cells (Rows.Count, "A"). End (xlUp) .Row
Terminara si
lThisRow = lThisRow + 1
Lazo
End Sub