Vimos a função transpor na planilha do Excel quando colamos qualquer tabela de dados na planilha, o que transpor faz é que ela muda a posição das linhas e colunas, ou seja, as linhas se tornam colunas e as colunas se tornam linhas em uma tabela de dados, agora que é uma planilha no VBA, usamos com o método Application.worksheet no VBA.
Como fazer a transposição em VBA?
Alternar linhas e colunas é uma das técnicas de manipulação de dados que quase todos os usuários fazem no Excel. O processo de conversão de dados horizontais em verticais e dados verticais em horizontais é chamado de “Transpor” no Excel. Tenho certeza de que você deve estar familiarizado com a Transposição em uma planilha normal. Neste artigo, mostraremos como usar o método de transposição na codificação VBA.
Podemos transpor em VBA usando dois métodos.
- Transpor usando a fórmula TRANSPOSE.
- Transpor usando o método especial de colagem.
Quando estamos transpondo, estamos trocando linhas por colunas e colunas por linhas. Por exemplo, se os dados estiverem em uma matriz 4 X 3, eles se tornarão uma matriz 3 X 4.
Vamos ver alguns exemplos de transposição de coluna para linha no VBA.
# 1 - Transposição VBA usando a fórmula TRANSPOSE
Da mesma forma que usamos TRANSPOSE no Excel, podemos usar a fórmula TRANSPOSE no VBA também. Não temos uma fórmula TRANSPOSE em VBA, então precisamos usar na classe Função de planilha.
Para obter um exemplo, veja a imagem de dados abaixo.
Tentaremos transpor essa matriz de valores. Siga as etapas abaixo para transpor os dados.
Etapa 1: iniciar o subprocedimento
Código:
Sub Transpose_Example1 () End Sub
Etapa 2: primeiro precisamos decidir para onde vamos transpor os dados. Neste, optei por transpor da célula D1 para H2. Portanto, insira o código VBA como Faixa (“D1: H2”). Valor =
Código:
Sub Transpose_Example1 () Range ("D1: H2"). Value = End Sub
Etapa 3: agora no intervalo mencionado acima, precisamos do valor do intervalo A1 a B5. Para chegar a esta classe de “Função de planilha”, selecione a fórmula “Transpor”.
Etapa 4: Em Arg 1, forneça o intervalo da fonte de dados, ou seja, Range (“A1: D5”) .
Código:
Sub Transpose_Example1 () Range ("D1: H2"). Value = WorksheetFunction.Transpose (Range ("A1: D5")) End Sub
Ok, concluímos a codificação da fórmula TRANSPOSE. Agora execute o código para ver o resultado no intervalo de células D1 a H2.
Como vimos na imagem acima, ela converteu o intervalo de células de colunas em linhas.
# 2 - Transposição VBA usando o método especial de colagem
Também podemos transpor usando o método Colar especial. Considere os mesmos dados para este exemplo também.
A primeira coisa que precisamos fazer para transpor é copiar os dados. Então escreva o código como Range (“A1: B5”). Copiar
Código:
Sub Transpose_Example2 () Range ("A1: B5"). Copiar End Sub
O próximo passo é decidir onde colar os dados. Nesse caso, escolhi D1 como a célula de destino desejada.
Código:
Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). End Sub
Uma vez que a célula de destino desejada é selecionada, precisamos selecionar “Colar Método Especial”.
Com colar especial, podemos realizar todas as ações que temos com métodos regulares de colar especial em uma planilha.
Ignore todos os parâmetros e selecione o último parâmetro, ou seja, Transpor e torná-lo TRUE.
Código:
Sub Transpose_Example2 () Range ("A1: B5"). Copy Range ("D1"). PasteSpecial Transpose: = True End Sub
Isso também irá transpor os dados como o método anterior.
Assim, podemos usar a fórmula TRANSPOSE ou o método Paste Special para transpor os dados para mudar linhas para colunas e colunas para linhas.
Coisas para lembrar
- Se estivermos usando a função de planilha TRANSPOSE, é obrigatório calcular um número de linhas e colunas para transpor os dados. Se tivermos 5 linhas e 3 colunas, durante a transposição torna-se 3 linhas e 5 colunas.
- Se você deseja a mesma formatação ao usar colar especial, você deve usar o argumento Tipo de Colar como “xlPasteFormats”
Você pode baixar este modelo VBA Transpose Excel aqui - Modelo VBA Transpose Excel