本帖最后由 瀚海人 于 2013-12-2 14:47 编辑
Sub aaa()
Dim arr, i&, d As Object
Set d = CreateObject("scripting.dictionary")
arr = Range("b2:b" & [b65536].End(3).Row)
ReDim Preserve arr(1 To UBound(arr), 1 To 2)
For i = 1 To UBound(arr)
If d.exists(arr(i, 1)) Then arr(i, 2) = i - d(arr(i, 1)) - 1 Else arr(i, 2) = i - 1
d(arr(i, 1)) = i
Next i
[c2].Resize(UBound(arr)) = Application.Index(arr, , 2)
End Sub
- Sub aaa()
- Dim arr, i&, d As Object
- Set d = CreateObject("scripting.dictionary")
- arr = Range("b2:b" & Cells(Rows.Count, 2).End(xlUp).Row)
- ReDim Preserve arr(1 To UBound(arr), 1 To 2)
- For i = 1 To UBound(arr)
- If d.exists(arr(i, 1)) Then arr(i, 2) = i - d(arr(i, 1)) - 1 Else arr(i, 2) = i - 1
- d(arr(i, 1)) = i
- Next i
- [c2].Resize(UBound(arr)) = Application.Index(arr, , 2)
- End Sub
复制代码2010下运行正常。
|