Como empilho várias colunas em uma?

Como empilho várias colunas em uma?

Dados de exemplo

Não tenho experiência suficiente com VBA para fazer isso. Como modifico o VBA abaixo para poder fazer o seguinte:

  1. Coloque colunas empilhadas em uma nova planilha.

  2. Lidar com espaços em branco (o código abaixo atualmente faz isso)

3.code é executado no intervalo que o usuário selecionou atualmente. Idealmente, o usuário pode selecionar colunas não contíguas.

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

Responder1

Eu usaria o suplemento Power Query para isso, embora ele não consiga atender ao requisito nº 3. No Excel 2016, o Power Query é integrado à faixa de dados na seção "Obter e transformar".

As etapas que eu criaria no Power Query seriam:

Selecione as colunas Org e Length e escolha "Remover Colunas".

Selecione a coluna Categoria e escolha "Desdinamizar colunas/Desdinamizar outras colunas".

Você pode entregar o resultado em uma nova tabela do Excel.

informação relacionada