- 帖子
- 976
- 主題
- 7
- 精華
- 0
- 積分
- 1018
- 點名
- 0
- 作業系統
- Win10
- 軟體版本
- Office 2016
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2013-4-19
- 最後登錄
- 2025-1-10
|
10#
發表於 2021-3-5 23:21
| 只看該作者
回復 7# mdr0465
請測試看看,謝謝。
Sub test()
Dim xD, Arr, Brr(), i&, Ar, a&, b$, j%
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([F1], [a65536].End(3))
ReDim Brr(1 To UBound(Arr), 1 To 4)
For i = 1 To UBound(Arr)
If xD.Exists(Arr(i, 4) & "") Then
m = m + 1
列 = xD(Arr(i, 4) & "")
Brr(列, 3) = Brr(列, 3) & "_" & m
Brr(列, 4) = Brr(列, 4) & "_" & Arr(i, 1)
Else
m = m + 1
xD(Arr(i, 4) & "") = i
Brr(m, 2) = Arr(i, 4)
Brr(m, 3) = m
Brr(m, 4) = Arr(i, 1)
End If
Next
For i = 1 To UBound(Arr)
For ib = 1 To UBound(Brr)
pos = InStr(Brr(ib, 3), "_")
If pos > 0 And Arr(i, 4) = Brr(ib, 2) Then
Ar = Split(Brr(ib, 3), "_")
For j = 0 To UBound(Ar)
a = Split(Brr(ib, 3), "_")(j)
b = Split(Brr(ib, 4), "_")(j)
If i <> a Then
If Cells(i, 8) = "" Then
Cells(i, 8) = "D" & a
Cells(i, 9) = b
Rows(i).EntireRow.Interior.ColorIndex = 6
Else
Cells(i, 8) = Cells(i, 8) & "," & "D" & a
Cells(i, 9) = Cells(i, 9) & "," & b
End If
End If
Next
End If
Next
Next
End Sub |
|