我在Excel中使用VBA来使用Sheet 2的字符串值列表并查询Sheet 1的数据以查看Sheet 2的值是否存在。如果它们存在,请突出显示Sheet1中的单元格。电子表格中的搜索字符串和突出显示
我在第2页的清单如下:
列以A
管理服务
高管
防火墙'
发电机
互联网
IT应用支持
代理
补救
我的VBA是:
Private Sub CommandButton1_Click()
row_num = 1
Query = Sheet2.Range("A:A")
While Trim(ActiveCell.Value) <> ""
row_num = row_num + 1
item_sum = Sheet1.Range("B" & row_num)
item_note = Sheet1.Range("C" & row_num)
item_group = Sheet1.Range("E" & row_num)
If (InStr(item_sum, Query) Or InStr(item_note, Query) Or InStr(item_group, Query)) Then
ActiveCell.Interior.Color = RGB(255, 255, 0)
End If
Wend
End Sub
现在我没有错误标志,没有任何亮点。我试图使用查询值为Sheet 2的列A,但我不知道它是否工作。
更新:
我试图改变While循环:
Do
DoEvents
row_num = row_num + 1
item_sum = Sheet1.Range("B" & row_num)
item_note = Sheet1.Range("C" & row_num)
item_group = Sheet1.Range("E" & row_num)
If (InStr(item_sum, Query) Or InStr(item_note, Query) Or InStr(item_group, Query)) Then
ActiveCell.Interior.Color = RGB(255, 255, 0)
End If
Loop Until item_sum = ""
但是我突出了以下活动:
当您将需要检查的值加载到数组中时,它的工作效果可能会更好,然后检查数组中的匹配项。你是否也声明了你的变量? – Luuklag
不确定你的意思是“加载值”,但我假设你的意思是如果(InStr(item_sum,“Remedy”))Then'。另外,我意识到我的Sheet1名称是Data和Sheet2名称是List。所以我尝试了'item_sum =工作表(“数据”)。范围(“B”和row_num)'和仍然只有光标停留在光标不会停止基于字符串查询@Luuklag – narue1992