hi,如果最后一个数字(作为字符串)是我选择的许多数字之一,我想将单元格的颜色设为蓝色。但是我得到的是所有的列都变为蓝色,而不仅仅是我想要的特定单元格。这是我的代码。
Dim Count As Integer
Count = 1
Do
If Right(Sheets(2).Cells(Count, 2), InStr(1, Sheets(2).Cells(Count, 2), "-")) = "10" Or "2" Or "20" Or "26" Or "3" Or "35" Or "36" Or "4" Or "43" Or "45" Or "6" Or "15" Or "18" Or "5" Then
Sheets(2).Cells(Count, 2).Interior.ColorIndex = 33
End If
Count = Count + 1
Loop Until Sheets(2).Cells(Count, 2) = ""
End Sub
这里是使用正则表达式而不是冗长的OR语句的示例。我从您的代码中假设字符串末尾的数字前面是一个破折号。
Sub colorBlue()
Dim regex As Object
Set regex = CreateObject("vbscript.regexp")
'match 10,2,20,26,3,35,36,4,43,45,6,15,18,5
With regex
.Global = True
.MultiLine = False
.pattern = "(-)(2|3|4|5|6|10|15|18|20|26|35|36|43|45)$"
End With
Dim ws As Worksheet, cell As Range
Set ws = ThisWorkbook.Sheets(2)
For Each cell In ws.UsedRange.Columns(1).Cells
If regex.test(cell.Value) Then
cell.Interior.ColorIndex = 33
End If
Next cell
End Sub