不区分大小写的搜索和标记匹配单元格

时间:2017-03-05 03:13:58

标签: excel excel-vba vba

我之前已经问过某些代码,答案完美无缺!试图将我从中学到的东西应用于这些不同的代码,但它给了我一个错误。从具有循环和Do Until的内容编辑此代码,但它没有处理第一行。

我的目标是找到值以声明的目标值开头的单元格,然后更改行颜色。我也想让这个搜索案例不敏感。

Sub colortargets()
Dim iRow As Long

Dim targetvalues(1 To 3) As String

targetvalues(1) = "ABC"
targetvalues(2) = "AAC"
targetvalues(3) = "AAB4"


'check if match

For i = 1 To 3
For j = 3 To 4
For iRow = Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
val = UCase(Left(Cells(iRow, 1).Value, j))
If val = targetvalues(i) Then
Rows(iRow).EntireRow.Interior.ColorIndex = 34

Next j
Next i


End Sub

提前感谢您的帮助!

1 个答案:

答案 0 :(得分:-1)

我不是循环的粉丝,所以这里有一个AutoFilter替代方案(但是如果它可以区分大小写,则无法测试):

Option Compare Binary       ' this is the default string comparison

Sub colorTargets()

    Cells.CurrentRegion.AutoFilter 1, Array("ABC*", "AAC*", "AAB4*"), xlFilterValues

    Cells.SpecialCells(xlCellTypeVisible).EntireRow.Interior.ColorIndex = 34

    ActiveSheet.AutoFilterMode = False    ' turn off the AutoFilter

End Sub