[英]Looping Through Instr Excel VBA
我正在嘗試將sheet1上的名稱與sheet2匹配,但是下面的代碼不起作用。 我要做的就是如果sheet1上的名稱至少包含sheet2上名稱的一部分,則匹配(用藍色塗)。 舉例來說;
工作表1:John Livingtone
工作表2:約翰·利文(John Living)
Sub inst()
Dim nameone As Variant
Dim cel As Variant
Dim nametwo As Variant
Dim cem As Variant
nameone = Sheets("Sheet1").Range("L1:L1600")
nametwo = Sheets("sheet2").Range("M1:M1600")
For Each cem In nameone
For Each cel In nametwo
If InStr(cem.Value, "cel.Value") > 0 Then
cem.Value = RGB(0, 0, 255)
End If
Next cel
Next cem
如果將變量設置為范圍並實際計算行數,而不是對行數進行硬編碼,則代碼也將更快地工作。
您的問題表明sheet2具有部分字符串,但是您的代碼卻顯示了相反的字符串。 我根據您提供的代碼運行了循環。
Sub inst()
Dim nameone As Range
Dim cel As Range
Dim nametwo As Range
Dim cem As Range
Dim sh1 As Worksheet, sh2 As Worksheet
Dim L1 As Long, L2 As Long
Set sh1 = Sheets("Sheet1")
Set sh2 = Sheets("Sheet2")
With sh1
L1 = .Cells(.Rows.Count, "L").End(xlUp).Row
Set nameone = .Range("L1:L" & L1)
End With
With sh2
L2 = .Cells(.Rows.Count, "M").End(xlUp).Row
Set nametwo = .Range("M1:M" & L2)
End With
For Each cem In nameone.Cells
For Each cel In nametwo.Cells
If InStr(cem.Value, cel.Value) <> 0 Then
cem.Font.Color = RGB(0, 0, 255)
End If
Next cel
Next cem
End Sub
如果您希望單元格為藍色而不是字體,請更改內部顏色
cem.Interior.Color = RGB(0, 0, 255)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.