我在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