Excel - Uma macro para transferir dados de linhas para colunas

Questão

Os dados agora estão no formato abaixo

 1 2 3

9 15 16 20 25

1

Isso tem que vir neste formato

 1

2

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

Observe que

Graças a rizvisa1 por esta dica no fórum.
Artigo Anterior Próximo Artigo

Principais Dicas