Vba:如何突出显示列中的前n个值
您可以在 VBA 中使用以下语法来突出显示 Excel 中某列的前 N 个值:
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
这个特定的宏将突出显示A2:A11范围内的 3 个最高值。
要突出显示不同数量的上限值,只需编辑For i = 1 To 3行即可获得不同的上限。
以下示例展示了如何在实践中使用此语法。
示例:使用 VBA 突出显示列中的前 N 个值
假设我们的 Excel 电子表格的 A 列中有以下值:
我们可以创建以下宏来突出显示A2:A11范围内的前 3 个最大值:
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
当我们运行这个宏时,我们会收到以下输出:
请注意,A 列中包含 3 个最高值的单元格现在已突出显示。
请注意,您还可以更改用于突出显示的颜色以及要突出显示的主要值的数量。
例如,我们可以使用以下宏以绿色突出显示 A 列中的前 5 个值:
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
当我们运行这个宏时,我们会收到以下输出:
请注意,A 列中包含 5 个最高值的单元格现在以绿色突出显示。
其他资源
以下教程说明如何在 VBA 中执行其他常见任务: