Transposição do VBA (passo a passo) - 2 métodos principais para transpor em VBA

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 transpor 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 para transpor coluna a 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 no VBA, então precisamos usá-la na classe Worksheet Function.

Por exemplo, observe 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, ele 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

A próxima coisa é que precisamos 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

Assim que a célula de destino desejada for 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 torne-o 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, ele se tornará 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.

Artigos interessantes...