Transposición de VBA

Hemos visto la función de transposición en la hoja de trabajo de Excel cuando pegamos cualquier tabla de datos en la hoja de trabajo, lo que hace la transposición es que cambia la posición de las filas y columnas, es decir, las filas se convierten en columnas y las columnas se convierten en filas en una tabla de datos, ahora que es una hoja de trabajo La función en VBA la usamos con el método Application.worksheet en VBA.

¿Cómo transponer en VBA?

Cambiar filas y columnas es una de las técnicas de manipulación de datos que casi todos los usuarios hacen en Excel. El proceso de conversión de datos horizontales a verticales y de datos verticales a horizontales se denomina "Transponer" en Excel. Estoy seguro de que debe estar familiarizado con la transposición en una hoja de trabajo normal, en este artículo le mostraremos cómo usar el método de transposición en la codificación VBA.

Podemos transponer en VBA usando dos métodos.

  1. Transponer usando la fórmula TRANSPOSE.
  2. Transponer usando el método especial Pegar.

Cuando estamos transponiendo, estamos cambiando filas por columnas y columnas por filas. Por ejemplo, si los datos están en una matriz de 4 X 3, se convierten en una matriz de 3 X 4.

Veamos algunos ejemplos para transponer columna a fila en VBA.

# 1 - Transposición de VBA usando la fórmula TRANSPOSE

Al igual que la forma en que usamos TRANSPOSE en Excel, también podemos usar la fórmula TRANSPOSE en VBA. No tenemos una fórmula TRANSPOSE en VBA, por lo que debemos usarla en la clase de función de hoja de trabajo.

Para ver un ejemplo, mire la siguiente imagen de datos.

Intentaremos transponer esta matriz de valores. Siga los pasos a continuación para transponer los datos.

Paso 1: iniciar el subprocedimiento

Código:

 Sub Transpose_Example1 () End Sub 

Paso 2: Primero debemos decidir dónde vamos a transponer los datos. En esto, he optado por transponer de la celda D1 a la H2. Entonces, ingrese el código VBA como Rango ("D1: H2"). Valor =

Código:

 Sub Transpose_Example1 () Intervalo ("D1: H2"). Valor = End Sub 

Paso 3: Ahora, en el rango mencionado anteriormente, necesitamos el valor del rango A1 a B5. Para llegar a esta clase abierta "Función de hoja de trabajo" y seleccione la fórmula "Transponer".

Paso 4: En Arg 1, proporcione el rango de la fuente de datos, es decir, Rango (“A1: D5”) .

Código:

 Sub Transpose_Example1 () Range ("D1: H2"). Value = WorksheetFunction.Transpose (Range ("A1: D5")) End Sub 

Ok, hemos terminado con la codificación de fórmulas TRANSPOSE. Ahora ejecute el código para ver el resultado en el rango de celdas D1 a H2.

Como hemos visto en la imagen de arriba, ha convertido el rango de celdas de columnas a filas.

# 2 - Transposición de VBA usando el método especial Pegar

También podemos transponer usando el método Pegado especial. Considere también los mismos datos para este ejemplo.

Lo primero que debemos hacer para transponer es copiar los datos. Así que escribe el código como Rango ("A1: B5"). Copiar

Código:

 Sub Transpose_Example2 () Rango ("A1: B5"). Copiar End Sub 

Lo siguiente es decidir dónde vamos a pegar los datos. En este caso, he elegido D1 como la celda de destino deseada.

Código:

Sub Transpose_Example2 () Rango ("A1: B5"). Rango de copia ("D1"). End Sub

Una vez seleccionada la celda de destino deseada, debemos seleccionar "Pegar método especial".

Con pegar especial, podemos realizar todas las acciones que tenemos con los métodos especiales de pegar regulares en una hoja de trabajo.

Ignore todos los parámetros y seleccione el último parámetro, es decir, transponer y convertirlo en TRUE.

Código:

 Sub Transpose_Example2 () Rango ("A1: B5"). Copiar rango ("D1"). Pegar Transposición especial: = True End Sub 

Esto también transpondrá los datos como en el método anterior.

Así, podemos usar la fórmula TRANSPONER o el método Pegado especial para transponer los datos para cambiar filas a columnas y columnas a filas.

Cosas para recordar

  • Si usamos la función TRANSPONER de la hoja de trabajo, es obligatorio calcular una cantidad de filas y columnas para transponer los datos. Si tenemos 5 filas y 3 columnas, al transponer se convierte en 3 filas y 5 columnas.
  • Si desea el mismo formato mientras usa pegado especial, debe usar el argumento Tipo de pegado como "xlPasteFormats"

Puede descargar esta plantilla de Excel de transposición de VBA desde aquí - Plantilla de Excel de transposición de VBA