3

複数のリストをアルファベット順およびセルの色で並べ替えようとしていますが、特定の範囲内です (時間がかかりすぎないため)。基本的に、VBAは、たとえば列Bの行3〜88を選択し、アルファベットで並べ替えてから、色で並べ替えると想定しています。次に、列 NY まで、次の列 C3:C88 などに移動します。

試してみると、Run-time error 1004: Mathod "Range" of object '_Global' failed. が発生します。

これは私のVBAです:

Sub SortAlphaColor()
' Sorts rows within a list from A-Z
' Run Clean all first to avoid sorting blanks
' Set maximum range to avoid sorting too many rows

    Dim rngFirstRow As Range
    Dim rng As Range
    Dim ws As Worksheet

    Application.ScreenUpdating = False
    Set ws = ActiveSheet
    Set rngFirstRow = ws.Range("B3:NY3")
    For Each rng In rngFirstRow
        With ws.Sort
            .SortFields.Clear
            .SortFields.Add Key:=rng, Order:=xlAscending
            'assuming there are no blank cells..
            .SetRange ws.Range(rng, rng.Range("B88").End(xlUp))
                'VBA from second module
                .SortFields.Add(Range(rng), xlSortOnCellColor, xlAscending, , xlSortNormal).SortOnValue.Color = RGB(198, 239, 206) <- this line is highlighted in debug
                .Orientation = xlTopToBottom
                .SortMethod = xlPinYin
            .Header = xlYes
            .MatchCase = False
            .Apply
        End With
    Next rng
    Application.ScreenUpdating = True
End Sub
4

1 に答える 1