|
请查看是否能达到效果,我没办法上传附件。
你需要将原始数据填写在Sheet1的第1 列,输出结果在Sheet2中
For j = 1 To nElement
brr(j) = Sheet1.Cells(j, 1).Value 'Data Readin
Next j
- 'http://club.excelhome.net/thread-1472622-1-1.html
- 'Public Parameter
- Public Out(), mOut, nOut
- Public Nums%, nElement%
- Public Org()
- Public arr
- Sub Main_Combination()
- Dim i&, j&
- Nums = 4
- nElement = 8
- ReDim Org(1 To Nums)
- ReDim Out(1 To nElement ^ Nums, 1 To Nums) 'Output Array
- ReDim arr(1 To Nums) 'Tmp Array
- ReDim brr(1 To nElement) 'Array of Element
- For j = 1 To nElement
- brr(j) = Sheet1.Cells(j, 1).Value 'Data Readin
- Next j
- For i = 1 To Nums
- Org(i) = brr '2 Dimension Array
- Next i
- Combine_Recursion_Front Nums, 1, nElement
- Sheet2.Cells(1, 1).Resize(UBound(Out), UBound(Out, 2)) = Out
- End Sub
- '
- Sub Combine_Recursion_Front(m, n, k)
- Dim i, j 'Variance
- For i = n To k 'Loop Element
- arr(m) = Org(m)(i) 'Data into Temp Array
- If m > 1 Then 'Recrusion, process next
- Combine_Recursion_Front m - 1, n, k
- Else
- Arr_In_Out arr 'Output Array
- End If
- Next i
- End Sub
- 'Data into Output Array
- Sub Arr_In_Out(arr)
- nOut = nOut + 1
- For mOut = 1 To UBound(arr)
- Out(nOut, mOut) = arr(mOut)
- Next
- End Sub
复制代码 |
|