我需要找出一種方法來輸出結果的所有組合的行數(最好,如果可能在一個單一行)Excel vba如何將數字輸出組合到Excel行?
我有8位數{1,2,3,4,5, 6,7,8}組合的典型輸出是i; j(i,j是來自集合的數字,如果選擇兩個,則爲i < j)。生成結果很簡單:
Dim Myarray_2 As String
Dim sht as Worksheet
set sht = Sheet1
Myarray_2 = "" ' pick up 2 out of 8
For j = 2 To 8
For i = 1 To j - 1
sht.Cells(i + 1, j + 1) = Str(MyArray(i)) + ";" + Str(MyArray(j))
Myarray_2 = Myarray_2 + Str(MyArray(i)) + ";" + Str(MyArray(j)) + "|"
Next i
Next j
這是拿起2的例子,我已經將它輸出到工作表的行。
我也有解決方案,拿起3,現在我的問題是其餘的情況下,如何得到輸出?
下面是用於拾取3溶液:
Dim Myarray_3 As String
Myarray_3 = "" ' 3 out of 8
k = 3
Do While k >= 3 And k <= 8
'inner loop through i j
For j = 2 To k - 1
For i = 1 To j - 1
sht.Cells(i + 11, j - 1 + m) = Str(MyArray(i)) + ";" + Str(MyArray(j)) + ";" + Str(MyArray(k))
Myarray_3 = Myarray_3 + Str(MyArray(i)) + ";" + Str(MyArray(j)) + ";" + Str(MyArray(k)) + "|"
Next i
Next j
k = k + 1
m = m + 7
Loop
通過MYARRAY(ⅰ)被初始化爲MYARRAY(i)所述的方式= I
是'1,2'和'2,1'是一回事嗎?如果是這樣,嵌套循環會做到這一點。 – Jeeped
我
我會一直說的第一件事就是在數組中做你的組合工作。然後在最後輸出數組.. – MacroMarc