¿Cómo apilo varias columnas en una?

¿Cómo apilo varias columnas en una?

Datos de ejemplo

No tengo suficiente experiencia con VBA para lograr esto. ¿Cómo modifico el siguiente VBA para poder hacer lo siguiente?

  1. Coloque columnas apiladas en una hoja nueva.

  2. Manejar espacios en blanco (el código siguiente actualmente hace esto)

3.code se ejecuta en el rango que el usuario ha seleccionado actualmente. Lo ideal es que el usuario pueda seleccionar columnas no contiguas.

Sub MoveAllDataToColumnA()
    Dim i As Long, ws As Worksheet, rngCopy As Range, rngEnd As Range
    Set ws = ActiveSheet
    Do Until ws.Cells(1, 2).Value = ""
        Set rngCopy = ws.Range("B2", ws.Cells(ws.Rows.Count, "B").End(xlUp))
        Set rngEnd = ws.Cells(ws.Rows.Count, "A").End(xlUp).Offset(1, 0)
        rngEnd.Resize(rngCopy.Rows.Count, 1).Value = rngCopy.Value
        rngCopy.EntireColumn.Delete
    Loop
End Sub

Respuesta1

Usaría el complemento Power Query para esto, aunque no puede cumplir con el requisito n.° 3. Desde Excel 2016, Power Query está integrado en la cinta Datos en la sección "Obtener y transformar".

Los pasos que crearía en Power Query serían:

Seleccione las columnas Organización y Longitud, luego elija "Eliminar columnas".

Seleccione la columna Categoría y elija "Desvincular columnas/Desvincular otras columnas".

Puede entregar el resultado en una nueva tabla de Excel.

información relacionada