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

当我们运行这个宏时,我们会收到以下输出:

VBA突出显示列中的前N个值

请注意,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 中执行其他常见任务:

VBA:如何对单元格应用条件格式
VBA:如何将条件格式应用于重复值
VBA:如何查找列中的值

添加评论

您的电子邮箱地址不会被公开。 必填项已用*标注