|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
Sub test()
Dim ar, d, i&, j&, dk, s, n&, m&, t, br
t = Timer
Set d = CreateObject("scripting.dictionary")
ar = [a1].CurrentRegion
For i = 2 To UBound(ar)
d(ar(i, 1)) = d(ar(i, 1)) & "|" & i
Next i
dk = d.keys
ReDim br(1 To d.Count, 1 To 2)
For i = 0 To UBound(dk)
br(i + 1, 1) = dk(i)
s = Split(d(dk(i)), "|")
For j = 1 To UBound(s) - 1
If ar(s(j), 3) <> ar(s(j) + 1, 3) Then
If ar(s(j), 3) - ar(s(j) + 1, 3) = -1 Or ar(s(j), 3) - ar(s(j) + 1, 3) = -89 Then
n = n + 1
If n > m Then m = n
Else
n = 0
End If
End If
Next j
br(i + 1, 2) = m + 1
m = 0
Next i
[i9].Resize(d.Count, 2) = br
MsgBox Format(Timer - t, "0.0000")
End Sub |
|