- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2025-1-10
|
3#
發表於 2021-9-28 08:35
| 只看該作者
回復 1# oak0723-1
請測試看看,謝謝
Sub test()
Dim Arr, Brr, xD, T
Set xD = CreateObject("Scripting.Dictionary")
With Range("h6:h" & Cells(Rows.Count, 8).End(xlUp).Row)
Brr = .Value
.Sort key1:=.Item(1), Order1:=2, Header:=2
Arr = .Value
.Value = Brr
End With
For i = 1 To UBound(Arr)
T = Arr(i, 1): If T = "" Then GoTo 98
If xD(T) = "" Then: n = n + 1: xD(T) = n
98: Next
For i = 1 To UBound(Brr)
T = Brr(i, 1)
If T = "" Then Brr(i, 1) = 0: GoTo 99
Brr(i, 1) = xD(T)
99: Next
Range("i6").Resize(UBound(Brr)) = Brr
End Sub |
|