我之前已经问过某些代码,答案完美无缺!试图将我从中学到的东西应用于这些不同的代码,但它给了我一个错误。从具有循环和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
提前感谢您的帮助!
答案 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