A、B、C、D四列1-10行都放有字串,想达到这样的目的: 把B、C、D三列分别与A列同行的字串相比较,如果含有A列字串的某个字符,就把这个字符变成红色,(A列不变), 例如:第一行的四个字串分别是"019","484","3579","0126", C列的"3579"中含有A列"019"中的"9",就把"3579"中的"9"变成红色,同样D列中的"0126"中的"0"也变成红色。B列的"484"与A列的"019"没有相同字符,就什么都不做。如何用VBA来实现这个目的?
Sub colorX()
For r = 1 To 10
lenr = Len(Cells(r, 1))
For c = 2 To 4
lenc = Len(Cells(r, c))
For i = 1 To lenr
For j = 1 To lenc
If Mid(Cells(r, c), j, 1) = Mid(Cells(r, 1), i, 1) Then
Cells(r, c).Characters(Start:=j, Length:=1).Font.ColorIndex = 3
End If
Next
Next
Next
Next
End Sub
注意: B, C, D 三列的数据, 一定要是文本,如是数字, 只会判断第一个字符, 如 TRUE, 便会将整个数字都变红,因数字格式是无法将部分变成不同颜色的。
时间: 2024-09-17 04:01:55