
'矩阵列数可以不限
Option Explicit
Sub abc()
Dim a, i, j, m, n, x, y
a = [a1].CurrentRegion.Value
If UBound(a) <> UBound(a, 2) Then MsgBox "!": Exit Sub
ReDim b(1 To 2 * UBound(a) - 1, 1 To 2 * UBound(a) - 1)
x = UBound(b) \ 2 + 1: y = 1
For j = 1 To UBound(a, 2)
m = x: n = y
For i = 1 To UBound(a)
b(m, n) = a(i, j)
m = m - 1: n = n + 1
Next
x = x + 1: y = y + 1
Next
[a1].Offset(, UBound(a, 2) + 1).Resize(UBound(b), UBound(b, 2)) = b
End Sub