|
发表于 2015-3-23 10:17
|
显示全部楼层
本楼为最佳答案
化简为烦。。。。。。。。- Sub tt()
- r = [e65536].End(3).Row
- arr = Range("a5:e" & r)
- ReDim brr(1 To UBound(arr), 1 To UBound(arr, 2))
- xrr = [h1:al1] '排序依据
- Set d = CreateObject("scripting.dictionary")
- For k = 1 To UBound(xrr, 2)
- x = xrr(1, k)
- For i = 1 To UBound(arr) '在排序依据中,以此排序
- If arr(i, 5) = x Then
- If Not d.exists(i) Then
- n = n + 1
- d(i) = ""
- For j = 1 To UBound(arr, 2)
- brr(n, j) = arr(i, j)
- Next
- End If
- End If
- Next
- Next
- If n < UBound(arr) Then '在排序依据外,按原序放在最后
- For i = 1 To UBound(arr)
- If Not d.exists(i) Then
- n = n + 1
- For j = 1 To UBound(arr, 2)
- brr(n, j) = arr(i, j)
- Next
- End If
- Next
- End If
- [g5].Resize(n, UBound(brr, 2)) = brr
- End Sub
复制代码 |
|