Vba: как выделить первые значения n в столбце


Вы можете использовать следующий синтаксис в VBA, чтобы выделить первые N значений столбца в Excel:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

Этот конкретный макрос выделит 3 самых высоких значения в диапазоне A2:A11 .

Чтобы выделить другое количество верхних значений, просто отредактируйте строку For i = 1 To 3 , чтобы указать другой верхний предел.

В следующем примере показано, как использовать этот синтаксис на практике.

Пример. Выделение первых N значений в столбце с помощью VBA

Предположим, у нас есть следующие значения в столбце A нашей таблицы Excel:

Мы можем создать следующий макрос, чтобы выделить первые 3 крупнейших значения в диапазоне A2:A11 :

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 3 values in range
    For Each rng In EntireRange
        
        For i = 1 To 3
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbYellow
        End If
        Next
    
    Next rng

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

VBA выделяет первые N значений в столбце

Обратите внимание, что ячейки, содержащие 3 самых высоких значения в столбце A, теперь выделены.

Обратите внимание, что вы также можете изменить цвет выделения, а также количество основных значений для выделения.

Например, мы можем использовать следующий макрос, чтобы выделить первые 5 значений в столбце A зеленым цветом:

 SubHighlightTopN ()

    Dim rng As Range
    Dim EntireRange As Range
    
    'specify range to use
    Set EntireRange = Range(" A2:A11 ")
    
    'highlight top 5 values in range
    For Each rng In EntireRange
        
        For i = 1 To 5
        
        If rng.Value = WorksheetFunction.Large(EntireRange, i) Then
        rng.Interior.Color = vbGreen
        End If
        Next
    
    Next rng

End Sub

Когда мы запускаем этот макрос, мы получаем следующий вывод:

Обратите внимание, что ячейки, содержащие 5 самых высоких значений в столбце A, теперь выделены зеленым цветом.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в VBA:

VBA: как применить условное форматирование к ячейкам
VBA: как применить условное форматирование к повторяющимся значениям
VBA: как найти значение в столбце

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *