|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
我来迟了,通用型 RngTarget 目标区域, RngRule 条件区域(对应本例中C2:E2)
Function xx(RngTarget As Range, RngRule As Range) As Integer
Dim array_a, array_b, array_c, array_d, i As Long, j As Long
array_a = RngTarget
ReDim array_b(1 To UBound(array_a) + 1, 1 To 1)
ReDim array_c(1 To UBound(array_a) + 1, 1 To 1)
array_b(1, 1) = Application.CountIf(RngRule, array_a(1, 1))
array_c(1, 1) = array_b(1, 1)
For i = 2 To UBound(array_a)
array_b(i, 1) = Application.CountIf(RngRule, array_a(i, 1))
array_c(i, 1) = array_b(i, 1) * (array_c(i - 1, 1) + array_b(i, 1))
If array_c(i, 1) = 0 And array_c(i - 1, 1) > 0 Then
array_d = Application.CountIf(Range(Cells(i - array_c(i - 1, 1), 1), Cells(i - 1, 1)), RngRule)
If Not CBool(Application.Product(array_d)) Then
For j = i - 1 To i - array_c(i - 1, 1) Step -1
array_c(j, 1) = 0
Next
End If
End If
Next
xx = IIf(Application.Max(array_c) > 2, Application.Max(array_c), 0)
End Function |
|