Transponer columna a hojas de Excel usando VBA

Tabla de contenido:

Anonim

Guión

Suponga que tiene un libro de Excel. Tiene 3 hojas. Una hoja contiene 5 columnas. Cada columna tiene datos de una ciudad diferente. Cada hoja contiene 5 columnas similares con datos diferentes de las mismas ciudades.

Desafío:

Necesitamos crear un archivo que contenga diferentes hojas para cada columna única. Cada hoja debe contener los datos de sus respectivas columnas. Al final, tendremos 5 hojas con 3 columnas cada una. En cierto modo, está transponiendo columnas a hojas.

Lógica:

Primero, necesitamos crear un libro de trabajo que contenga diferentes hojas para cada columna. Podemos hacer esto mirando los encabezados de la primera hoja de nuestro archivo original.

A continuación, debemos recorrer cada hoja de la hoja original para copiar cada columna en las hojas correspondientes del nuevo libro de trabajo.

Código VBA para transponer columnas a hojas.

Veamos primero el código VBA para transponer las hojas. Te lo explico a continuación.

Sub TransposeColsToSheets () 'varibles Dim wb As Workbook Dim twb As Workbook Dim lstRw As Integer Dim lstCl As Integer Dim cols As Range With Application .DisplayAlerts = False .ScreenUpdating = False End With' creando nuevo archivo Set wb = Workbooks.Add 'guardando el archivo. Reemplaza la ruta con tu destino. wb.SaveAs "C: \ Users \ Manish Singh \ Desktop \ Excel Tip \ result.xlsx" Establecer twb = ThisWorkbook twb.Sheets (1) .Activate lstCl = Cells (1, Columns.Count) .End (xlToLeft) .Column 'identificando encabezados para nombres de ciudades Establecer cols = Range (Cells (1, 1), Cells (1, lstCl))' bucle para crear hojas Para x = 1 To cols.Count wb.Sheets.Add.Name = "page" & x Siguiente 'bucle para transponer columnas a hojas Para cada sh en dos hojas Para x = 1 Para cols.Count sh.Activate lstRw = Cells (Rows.Count, 1) .End (xlUp) .Row Range (Cells (1, x), Celdas (lstRw, x)). Copiar wb.Sheets ("página" & x) .Activar lstCl = Celdas (1, Columnas.Cuento) .End (xlToLeft) .Columna + 1 Rango (Celdas (1, lstCl ), Cells (1, lstCl)). PasteSpecial xlPasteAll Siguiente x Siguiente sh 'guardando y cerrando el libro de trabajo de resultados wb.Save wb.Close With Application .DisplayAlerts = True .ScreenUpdating = True End With End Sub 

Puede descargar el archivo a continuación para usarlo inmediatamente o copiar el código para personalizarlo según sus necesidades.

Una vez que ejecute el código, inmediatamente creará un archivo de Excel que tendrá 5 hojas, y cada hoja contiene 3 columnas de datos de la misma ciudad.
Transponer columna a hojas

¿Como funciona?

En el código de ejemplo anterior, asumimos que el archivo comienza desde la primera celda de cada hoja y que cada hoja contiene el mismo número de columnas.

En las primeras líneas de código, hemos declarado las variables que necesitaremos en el procedimiento. Hemos guardado los encabezados de las columnas en una variable llamada cols.También hemos creado un archivo .xlsx, llamado result.xlsx.

A continuación, hemos utilizado un bucle para crear el mismo número de hojas en result.xlsx que en el encabezado decols.

'bucle para crear hojas Para x = 1 Para cols.Count wb.Sheets.Add.Name = "página" & x Siguiente 

A continuación, hemos utilizado un bucle anidado. El primer ciclo consiste en iterar hojas en el archivo original. Siguiente ciclo para copiar cada columna y pegarla en cada hoja en el archivo results.xlsx.

Al final, estamos guardando el libro result.xlsx y cerrándolo. Y esta hecho.

Así que sí, chicos, así es como pueden copiar cada columna a una nueva hoja en Excel usando VBA. Esto fue preguntado por nuestro usuarioMahmood en la sección de comentarios. Pensé que merecía un artículo para que esté disponible para todos. Aqui lo tienes. Espero que haya sido lo suficientemente explicativo. Si aún tiene alguna duda o cualquier otra consulta, pregunte en la sección de comentarios a continuación.

Divida la hoja de Excel en varios archivos según la columna mediante VBA | Esta hoja de Excel dividida en código VBA se basa en valores únicos en una columna específica. Descarga el archivo de trabajo.

Desactivar los mensajes de advertencia mediante VBA en Microsoft Excel 2016 | Para desactivar los mensajes de advertencia que interrumpen el código VBA en ejecución, usamos la clase Application.

Agregar y guardar un libro nuevo con VBA en Microsoft Excel 2016 | Para agregar y guardar libros de trabajo usando VBA usamos la clase Workbooks. Workbooks.Add agrega un nuevo libro fácilmente, sin embargo …

Articulos populares:

50 accesos directos de Excel para aumentar su productividad | Acelera tu tarea. Estos 50 accesos directos le permitirán trabajar aún más rápido en Excel.

La función BUSCARV en Excel | Esta es una de las funciones más utilizadas y populares de Excel que se utiliza para buscar valores de diferentes rangos y hojas.

CONTAR.SI en Excel 2016 | Cuente valores con condiciones usando esta asombrosa función. No necesita filtrar sus datos para contar un valor específico. La función Countif es esencial para preparar su tablero.

Cómo utilizar la función SUMIF en Excel »Wiki Ùtil Esta es otra función esencial del tablero. Esto le ayuda a resumir valores en condiciones específicas.