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
Когда мы запускаем этот макрос, мы получаем следующий вывод:
Обратите внимание, что ячейки, содержащие 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: как найти значение в столбце