- Dim arr, brr, w, n%, s&, s2&
- Sub 忽略空值排列()
- Dim i&, j%
- arr = [b2:d7]: n = 6: s2 = 0: s = 0
- ReDim brr(1 To 60000, 1 To 6)
- ReDim w(1 To UBound(arr) * UBound(arr, 2))
- For j = 1 To UBound(arr, 2)
- For i = 1 To UBound(arr)
- If arr(i, j) <> "" Then s = s + 1: w(s) = arr(i, j)
- Next
- Next
- pl "", 0, 0
- [g2:l65536].ClearContents
- Range("g2").Resize(s2, n) = brr
- End Sub
- Sub pl(p, t, t2)
- If t = n Then
- s2 = s2 + 1
- x = Split(Mid(p, 2), ",")
- For j = 0 To UBound(x)
- brr(s2, j + 1) = x(j)
- Next
- Else
- For i = 1 To s
- If t2 < i Then pl p & "," & w(i), t + 1, i
- Next
- End If
- End Sub
复制代码 |