Существует ли какой-либо код VBA для сортировки данных с определенными интервалами на листе?

#excel #vba

#excel #vba

Вопрос:

Мои данные в том виде, в котором они введены

В моих данных я хочу отсортировать данные для банка 1 в порядке возрастания столбца «Характер дохода», для банка 2 в порядке возрастания столбца «Характер дохода» и так далее для всех банков. Но название банка записывается только один раз в начальной строке для банка. В каждом банке может быть много банков и много данных, поэтому, если я получу код VBA для сортировки данных одним щелчком мыши, это будет очень полезно. Спасибо

Комментарии:

1. откуда вы берете данные банков?

Ответ №1:

Комментарии к коду объясняют процесс.

 Option Explicit

Sub sortAreas()

    Dim a As Long

    'define the worksheet
    With Worksheets("sheet1")

        'used range in column D
        With .Range(.Cells(4, "D"), .Cells(Rows.Count, "D").End(xlUp))

            'all dates in column D
            With .SpecialCells(xlCellTypeConstants, xlNumbers)

                'loop through Areas of discontiguous range
                For a = 1 To .Areas.Count

                    'identify Area and expand to 4 columns wide
                    With .Areas(a).Resize(, 4)

                        'sort on the third column in ascending order
                        .Sort key1:=.Cells(1, 3), order1:=xlAscending, Header:=xlNo

                    End With

                Next a

            End With

        End With

    End With

End Sub