|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
水平有限,耗时9秒,哈哈.....
Sub 去重()
Application.ScreenUpdating = False
Dim i, n, arr, brr, d As Object
Set d = CreateObject("scripting.dictionary")
arr = [a1].CurrentRegion
ReDim brr(1 To UBound(arr), 1 To 100)
For i = 2 To UBound(arr)
t = arr(i, 2)
If Not d.exists(t) Then
n = n + 1
d(t) = n
brr(n, 1) = arr(i, 2)
End If
Next
[d2].Resize(UBound(brr), 100) = brr
Call 转置
MsgBox "转置完毕"
Application.ScreenUpdating = True
End Sub
Sub 转置()
Dim i, n, m, arr, brr
arr = [a1].CurrentRegion
m = 4
For n = 2 To [d65536].End(3).Row
For i = 2 To UBound(arr)
If arr(i, 2) = Cells(n, "d") Then
m = m + 1
Cells(n, m) = arr(i, 1)
End If
Next
m = 4
Next
End Sub
|
|