我有一个宏,它贯穿搜索词列表,将它们连接成一个由|
分隔的字符串,然后在单独的表格中搜索匹配项。然而,这个宏只能找到完全匹配(直到句子的情况),而不仅仅是字符串出现在单元格中。我想我应该使用FoundCell
函数(而不是If InStr...
)来获得我想要的搜索,但我遇到了麻烦。
Public Sub HighlightListedValues()
Dim strConcatList As String
Dim cell As Range
For Each cell In Sheets("List").Range("A1:A13")
strConcatList = strConcatList & cell.Value & "|"
Next cell
For Each cell In Intersect(Sheets("Sheet1").Range("A:A"), Sheets("Sheet1").UsedRange)
If InStr(strConcatList, cell.Value) > 0 Then
cell.EntireRow.Interior.Color = RGB(255, 0, 0)
End If
Next cell
End Sub
答案 0 :(得分:0)
如果你需要判断一个字符串的一部分是否与另一个字符串的一部分匹配,你将不得不遍历"搜索单词中的每个单词" string(如果可能的话,最好使用数组):
Public Sub HighlightListedValues()
Dim searchWords() As Variant
Dim aWord As Variant
Dim aCell As Range
searchWords = Sheets("List").Range("A1:A13").Value
For Each aCell In Intersect(Sheets("Sheet1").Range("A:A"), Sheets("Sheet1").UsedRange)
For Each aWord In searchWords
If InStr(UCase(aCell.Value), UCase(aWord)) > 0 Then
aCell.EntireRow.Interior.Color = RGB(255, 0, 0)
Exit For
End If
Next
Next
End Sub