зацикливание через диапазоны объединения - PullRequest
0 голосов
/ 13 февраля 2020

Как я могу l oop этот код, чтобы rColored равнялся только 1 диапазону за раз. Прямо сейчас он проверит лист и найдет 4 диапазона. Я хочу применить сортировку к каждому из диапазонов.

For Each rCell In Range("A5:G" & lastrow)
    If rCell.Interior.Color = vbWhite Then
        If rColored Is Nothing Then
            Set rColored = rCell
        Else
            Set rColored = Union(rColored, rCell)
        End If
    End If
Next

Мои данные размещены таким образом, что строка 5 является подзаголовком, а строки 6 - 36 - это данные, которые применяются к подзаголовку строки 5. Строка 37 является другим подзаголовком со своими данными в строках 38 - 43 и так далее. Подзаголовки меняются в зависимости от проекта. Общая моя цель - применить сортировку к каждому из диапазонов, но не к подзаголовку. Подзаголовки серые, а все данные - белые.

Example Data

1 Ответ

3 голосов
/ 13 февраля 2020

Если, как подозревает SJR, ячейки B5, B37 и т. Д. Не заполнены, а другие ячейки в столбце B не заполнены, попробуйте следующее ...

Dim lastRow As Long
lastRow = Cells(Rows.Count, "A").End(xlUp).Row

Dim rangeAreas As Areas
Set rangeAreas = Range("B5:B" & lastRow).SpecialCells(xlCellTypeConstants).Areas

Dim rangeArea As Range
For Each rangeArea In rangeAreas
    With rangeArea.Offset(, -1).Resize(, 7)
        .Sort _
            key1:=.Cells(1), _
            Order1:=xlAscending, _
            Header:=xlNo, _
            MatchCase:=False
    End With
Next rangeArea

Надеюсь, это поможет!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...