首页 > 解决方案 > 使用 VBA 对突出显示的单元格进行排序

问题描述

我试图通过它们是否突出显示来对单元格进行排序。如果他们是我正在寻找那些行在顶部。

尝试了另一个问题的一些代码,但无法弄清楚。

'sort highlighted and alphabetical
Sub SortColor()

    Dim rngFirstRow As Range
    Dim rng As Range, rngSort As Range
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    Set ws = Sheets("modified_report")
    Set rngFirstRow = ws.Range("K2:M2")
    For Each rng In rngFirstRow.Cells
        With ws.Sort

            Set rngSort = rng.Resize(150, 1)

            .SortFields.Clear
            .SortFields.Add(rng, xlSortOnCellColor, xlDescending, , xlSortNormal). _
                            SortOnValue.Color = RGB(198, 239, 206)
            .SetRange rngSort
            .Header = xlNo
            .MatchCase = False
            .Orientation = xlTopToBottom
            .SortMethod = xlPinYin
            .Apply

        End With
    Next rng
    Application.ScreenUpdating = True
End Sub

如果 K:M 列中有突出显示的单元格,则我是顶部的那一行。

我无法让整行移到顶部。这段代码似乎只是移动了这些单元格,因此与行的其余部分混淆了。

标签: excelvba

解决方案


推荐阅读