|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
学习一下字典
Sub test()
arr = [a1].CurrentRegion
Set d = CreateObject("scripting.dictionary")
For i = 2 To UBound(arr)
If Not d.exists(arr(i, 3)) Then
Set d(arr(i, 3)) = CreateObject("scripting.dictionary")
End If
If Not d(arr(i, 3)).exists(arr(i, 2)) Then
d(arr(i, 3))(arr(i, 2)) = i
Else
r = d(arr(i, 3))(arr(i, 2))
If arr(r, 1) < arr(i, 1) Then
d(arr(i, 3))(arr(i, 2)) = i
End If
End If
Next
brr = [f1].CurrentRegion
For i = 3 To UBound(brr)
For j = 2 To UBound(brr, 2)
If d.exists(brr(i, 1)) Then
If d(brr(i, 1)).exists(brr(2, j)) Then
brr(i, j) = arr(d(brr(i, 1))(brr(2, j)), 4)
Else
brr(i, j) = 0
End If
Else
brr(i, j) = 0
End If
Next
Next
[f2].CurrentRegion = brr
End Sub |
评分
-
2
查看全部评分
-
|