首页 > 解决方案 > 基于使用VBA的文本匹配突出显示行和列的交叉单元格

问题描述

我正在尝试使用 VBA,当列标题中的文本与行中的文本相同时,行和列的交叉单元格会以某种颜色突出显示。

示例:我尝试使用以下代码但未提供所需的输出

Sub cellintersection()
Application.EnableEvents = False
    Application.ScreenUpdating = False

    Dim ws As Worksheet
    Set ws = ActiveSheet

    Dim cols As Range, rws As Range
    Dim lastRow As Integer: lastRow = ws.UsedRange.Rows.Count
    Dim lastColumn As Integer: lastColumn = ws.UsedRange.Columns.Count

    For Each cols In ws.Range(ws.Cells(1, 1), ws.Cells(1, lastColumn))
        If (Not (cols.Value = vbNullString)) Then
            For Each rws In ws.Range("A1:A" & lastRow)
                If (rws.Value = cols.Value) Then ws.Cells(rws.Row, cols.Column).Interior.Color = 5296210
            Next
        End If
    Next

    Application.EnableEvents = True
    Application.ScreenUpdating = True

End Sub

所需输出:通过将文本与蓝色匹配,将单元格变为绿色。

输出

标签: excelvbaconditional-formatting

解决方案


因此,根据我的评论使用条件格式:

在此处输入图像描述

  • 选择范围B4:D6
  • 开始 > 条件格式 > 新规则 > 公式:

    =B$2=$A4
    
  • 选择您的填充颜色并确认

请注意,通过 VBA 填充单元格是静态的,而条件格式是动态的,并且会根据对数据所做的更改而更改。


推荐阅读