VBA Transpose

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.

  1. Transpor usando a fórmula TRANSPOSE.
  2. 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