2

Пример данных

Я не достаточно опытен с VBA, чтобы достигнуть этого. Как мне изменить приведенный ниже VBA, чтобы иметь возможность делать следующее:

  1. Поместите сложенные столбцы в новый лист.

  2. Обрабатывать пробелы (код ниже в настоящее время делает это)

3.code выполняется в диапазоне, выбранном пользователем в данный момент. В идеале пользователь может выбирать несмежные столбцы.

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

1 ответ1

2

Я бы использовал для этого надстройку Power Query, хотя она не справляется с требованием № 3. В Excel 2016 Power Query встроен в ленту данных в разделе "Получить и преобразовать".

Шаги, которые я бы создал в Power Query:

Выберите столбцы Org и Length, затем выберите "Удалить столбцы".

Выберите столбец «Категория» и выберите «Удалить столбцы / Удалить другие столбцы».

Вы можете доставить результат в новую таблицу Excel.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .