Sub TEST_A01()
Dim Arr, xD, i&, j%, T$, TT$
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([m1], [a65536].End(xlUp))
For i = 1 To UBound(Arr)
For j = 1 To UBound(Arr, 2)
T = Arr(i, j): xD(T & "/" & i) = 1
If xD(T & "/" & i - 1) = 1 Then TT = TT & "," & T
Next j
Arr(i, 1) = Mid(TT, 2): TT = ""
Next i
[p1].Resize(UBound(Arr)) = Arr
End Sub
Sub TEST_A02()
Dim Arr, Brr, xD, i&, j%, TT$
Set xD = CreateObject("Scripting.Dictionary")
Arr = Range([m1], [a65536].End(xlUp))
ReDim Brr(1 To UBound(Arr), 0)
For i = 2 To UBound(Arr)
For j = 1 To UBound(Arr, 2)
xD(Arr(i - 1, j) & "") = 1
Next j
For j = 1 To UBound(Arr, 2)
If xD(Arr(i, j) & "") = 1 Then TT = TT & "," & Arr(i, j)
Next j
Brr(i, 0) = Mid(TT, 2): TT = "": xD.RemoveAll
Next i
[p1].Resize(UBound(Brr)) = Brr
End Sub
Option Explicit
Sub TEST()
Dim Brr, i&, j%, A$, Q$, TT$, T$
'↑宣告變數
Brr = Range([M1], [A65536].End(xlUp))
'↑令Brr變數是 二維陣列,以A~M欄儲存格值帶入陣列中
For i = 1 To UBound(Brr)
'↑設順迴圈i
For j = 1 To UBound(Brr, 2)
'↑設順迴圈j
T = Brr(i, j)
'↑令T變數是 迴圈Brr陣列值
If InStr(A, "/" & T & "/") Then TT = TT & "," & T
'↑如果A變數 包含了以(T變數在前後包夾"/"的新字串)??
'↑令T變數納入TT變數後方,以逗點隔開,成為新字串
'(當i=1時,A是初始值"",所以條件都不會成立)
Q = Q & "/" & T & "/"
'↑令Q變數收集該迴圈的陣列值,做為下一迴圈的A變數
Next j
Brr(i, 1) = Mid(TT, 2): TT = "": A = Q: Q = ""
'↑令Brr陣列第1欄寫入符合條件的數字
Next i
[P1].Resize(UBound(Brr)) = Brr
'↑令Brr陣列值從[P1]開始寫入儲存格裡,超過此範圍的陣列值忽略
End Sub