Sub 底色1()
Dim Rng As Range, Arr, i&, i1&, j&, Colmn&
i1 = 1: j = 0: Colmn = 2
Arr = Array(vbRed, vbYellow)
For i = 2 To 20
If Cells(i, Colmn) <> Cells(i - 1, Colmn) Then
If i - i1 = 1 Then
i1 = i: j = 0
Else
Range(Cells(i1, Colmn), Cells(i - 1, Colmn)).Interior.Color = Arr(j)
j = 1 - j
i1 = i
End If
End If
Next i
End Sub
具体颜色及起止行号自己更改,注意尾部要多一行。
我就不信条件格式不行,我有个不成熟的想法:
第1步,先用COUNTIF函数,判断每个数重复个数
第2步,用MATCH函数匹配每个数第一次出现时的行号
第3步,用IF函数,如果没有重复数,返回结果设为""空值,如果是重复数,返回第一次出现的行号,得到数组{"',2,2,4,4,4,7,7,"",10,10,12,12,"",15,15,""}
第4步,利用MODE.MULT函数,得到不重复的行号的数组{2,4,7,10,12,15}
第5步,用SMALL函数取值,取第1、3、5.。。。个数{2,7,12}和第2、4、6.。。。个数{4,10,15},利用奇偶项将他们的行号区分开来
第6步,建两个条件格式判定,如果重复项行号是上述数组奇数项就标红色,偶数项标紫色
想法就是如此,我自己觉得可行,至于我为什么没有付诸实践。。。。
那是因为。。。。。我的WPS没有MODE.MULT这个函数。。。。
出师未捷身先死......