|
- Sub tt()
- cmax = Cells(3, ActiveSheet.Columns.Count).End(xlToLeft).Column '最大列
- arr = Range([c3], Cells(3, cmax))
- ReDim brr(1 To 1, 1 To UBound(arr, 2))
- For j = UBound(arr, 2) - 1 To 2 Step -1
- x = arr(1, j)
- n = n + 1
- If x = 0 Or x = 1 Then '只对对应单元格为0,1的起作用
- If arr(1, j - 1) <> x And arr(1, j + 1) <> x Then '010 或 101 或210.。。。,不能是 00*,*00,11*,*11
- s = s + 1
- brr(1, j) = s
- End If
- If n >= 5 Then
- If x = arr(1, j + 1) And x = arr(1, j + 2) And x = arr(1, j + 3) And x = arr(1, j + 4) Then '连续5个相同
- s = IIf(s > 10, s - 10, 0)
- For k = j - 1 To 2 Step -1 '继续往前找到不相同的位置
- If arr(1, k) <> x Then Exit For
- Next
- brr(1, k + 1) = s
- j = k + 1
- End If
- End If
- End If
- Next
- [c4].Resize(1, UBound(arr, 2)) = brr
- End Sub
复制代码 |
|