

'当前工作表selectionchange事件
Option Explicit
Private Sub Worksheet_SelectionChange(ByVal target As Range)
If target.Columns.Count < 2 Or target.Columns.Count > 20 Then Exit Sub '190 column
If target.Rows.Count > 200 Then Exit Sub '4*10^4 row
Call abc(target)
End Sub
Sub abc(target As Range)
Dim a, i, j, k, kk, n
a = target.Value
ReDim b(1 To UBound(a) ^ 2, 1 To WorksheetFunction.Combin(UBound(a, 2), 2))
For j = 1 To UBound(a, 2) - 1
n = n + UBound(a, 2) - j
For i = 1 To UBound(a)
For k = 1 To UBound(a)
For kk = j + 1 To UBound(a, 2)
b((i - 1) * UBound(a) + k, kk + n - UBound(a, 2)) = a(i, j) & a(k, kk)
Next kk, k, i, j
target.Offset(, UBound(a, 2) + 1).Resize(UBound(b), UBound(b, 2)) = b
End Sub