Option Explicit Sub 转置() Dim i, j, k, a, b, m a = [a1].CurrentRegion If UBound(a) Mod 3 <> 0 Or UBound(a, 2) < 3 Then Exit Sub ReDim b(1 To UBound(a), 1 To 3) For i = 1 To UBound(a) Step 3 For j = 1 To 3 m = m + 1 For k = i To i + 2 b(m, k - i + 1) = a(k, j) Next Next Next [e1].Resize(1, 3) = Split("编号 姓名 金额") [e2].Resize(UBound(b), 3) = b End Sub