Excel - Uma macro para transferir dados de linhas para colunas
Questão
Os dados agora estão no formato abaixo1 2 39 15 16 20 25
1
Isso tem que vir neste formato
12
3
9
15
16
20
25
1
Solução
Suposições:- 1. Os dados começam na linha 1 e devem ser sempre copiados para a coluna A
- 2. Linhas podem ser inseridas sem distorção nos dados
Sub TransposeSpecial ()Dim lMaxRows Como Long 'max linhas na folha
Fileira de lThisRow As Long 'a ser processada
Dim iMaxCol As Integer 'coluna máxima usada na linha que está sendo processada
lMaxRows = Células (Rows.Count, "A"). End (xlUp) .Row
lThisRow = 1 'começa da linha 1
Fazer enquanto lThisRow <lMaxRows
iMaxCol = Células (lThisRow, Columns.Count) .End (xlToLeft) .Column
Se (iMaxCol> 1) Então
Linhas (lThisRow + 1 & ":" & lThisRow + iMaxCol - 1) .Inserir
Intervalo (Células (lThisRow, 2), Células (lThisRow, iMaxCol)).
Intervalo ("A" e lThisRow + 1) .Selecione
Selection.PasteSpecial Paste: = xlPasteAll, Operação: = xlNone, SkipBlanks: = False, Transpose: = True
Intervalo (Células (lThisRow, 2), Células (lThisRow, iMaxCol)).
lThisRow = lThisRow + iMaxCol - 1
lMaxRows = Células (Rows.Count, "A"). End (xlUp) .Row
Fim se
lThisRow = lThisRow + 1
Loop
End Sub