Option Explicit
Sub TEST()
Dim Brr, Crr(1 To 200, 1 To 2), A, Z, i&, j%, R&, c%, T$, xR As Range
'↑宣告變數:&是長整數,%是短整數,沒有指定是通用型變數
Set Z = CreateObject("Scripting.Dictionary")
'↑令Z變數是 字典
Brr = Range([IV1].End(xlToLeft), [A65536].End(xlUp))
'↑令Brr變數是 帶入區域儲存格值的二維陣列
For i = 2 To UBound(Brr)
'↑設順迴圈!令i從2 到Brr陣列縱向最大索引列號
T = Trim(Brr(i, 1)): A = Z(T): R = Z(T & "/r")
'↑令T變數是i迴圈列1欄Brr陣列值:令A變數是 以變數查Z字典回傳的item值
'令R變數是 T變數連接"/r"字串組成的新字串為key,查Z字典回傳的item值
If Not IsArray(A) Then A = Crr: R = 1: A(R, 1) = Brr(1, 1): A(R, 2) = Brr(i, 1)
'↑如果A變數不是二維陣列!就令A變數變為同Crr的二維陣列:令R變數=1:令R變數列1欄A陣列值是 1列1欄Brr陣列值
'令R變數列2欄A陣列值是 i迴圈列1欄Brr陣列值
For j = 2 To UBound(Brr, 2)
'↑設順迴圈!令j從2 到Brr陣列橫向最大索引欄號
If Brr(i, j) = "" Then GoTo j01
'↑如果i迴圈列j迴圈欄Brr陣列值是 空字元!就跳到標示j01位置繼續執行
R = R + 1
'↑令R變數累加1
A(R, 1) = Brr(1, j)
'↑令R變數列1欄A陣列值是 1列j迴圈欄Brr陣列值
A(R, 2) = Brr(i, j)
'↑令R變數列2欄A陣列值是 i迴圈列j迴圈欄Brr陣列值
j01: Next
Z(T) = A: Z(T & "/r") = R
'↑令key是 T變數,的item值以 A變數放回Z字典中
Next
Set xR = [A11]
'↑令xR變數是 物件 A11 儲存格
For Each A In Z.KEYS
'↑設逐項迴圈!令A變數是 Z字典裡的key
If Not IsArray(Z(A)) Then GoTo A01
'↑如果以A變數查Z字典得item不是陣列!就跳到標示 A01位置繼續執行
xR.Resize(Z(A & "/r"), 2) = Z(A)
'↑令區域儲存格以 二維陣列值寫入
Set xR = xR(1, 4)
'↑令xR變數變為向右移動自身格算起的第4欄儲存格
A01: Next
End Sub