首页 > 解决方案 > Vba:基于部分匹配突出显示单元格

问题描述

我有一个很好的解决方案来根据确切的条件突出显示单元格。我试图根据部分匹配来突出显示。例如:A1= 闪避。A2 = 杜兰戈,A3 = 飞镖。

我怎样才能进行部分匹配,让我们说“dodg”、“duran”和“dar”,然后不突出显示单元格,而是突出显示其他单元格。基本上,如果缺少部分匹配,则突出显示整列中的单元格。

如果匹配,则以下突出显示“Durango”:

Sub Highlight()

Dim Highlight As Range
Set ws = ActiveSheet
Set w = ws.Rows(1).Find("Dodge", lookat:=xlWhole)
 If Not w Is Nothing Then
    For Each Highlight In ws.Range(w, ws.Cells(Rows.Count, w.Column).End(xlUp)).Cells
            If Highlight = "Durango" Then
                Highlight.Interior.Color = 65535
            End If
        Next Highlight
 End If

End Sub

标签: excelvbamatchhighlightpartial

解决方案


你可以使用

If Highlight Like "Durango" then...

Like 将在单元格中搜索该单词,因此它不必与整个单元格完全匹配,只需使用“*”包含该单词或部分单词。因此,在您的情况下,为匹配设置一个变量,然后使用


keyword = Cells(whatever cell your search word is entered into)
keyword = "*" & keyword & "*"
If Highlight Like keyword then
    'code to highlight whatever cells or _
    ' Set a Range and highlight the whole range.
end if

推荐阅读