我试图遍历数组中每个可能的整数组合。每个数组位置都有自己的最小和最大可能整数。我已经能够使用以下代码执行此操作:
'loop through each possible integer in each cell in the array from corresponding minimum to corresponding maximum
For g1 = MinG1 to MaxG1
For g2 = MinG2 To MaxG2
For g3 = MinG3 To MaxG3
For g4 = MinG4 To MaxG4
For g5 = MinG5 To MaxG5
'... and so on until...
For g36 = Min36 To MaxG36
Next
'... and so on until...
Next
Next
Next
Next
Next
显然,它既缓慢又丑陋,但它可以在每个相应的约束内循环完成每个可能的整数迭代。我正在尝试使用数组大大简化它并执行以下操作:
'loop through each cell in the array
Dim i As Long
Dim j As Long
For i = UBound(GRange) To LBound(GRange) Step -1
'loop through each possible integer in current cell from corresponding minimum to corresponding maximum
For j = MinGRange(i, 1) To MaxGRange(i, 1)
GRange(i, 1) = j
Next
Next
我的问题是它在每个单元格中从最小值到最大值循环,但在下一个单元格迭代时不会重复(即在我丑陋的代码中,G36将返回到最小值并在G35迭代时再次开始迭代到下一个号码)。我还没有找到一个解决方案来告诉我如何实现这一目标。
我不想要一个35阶段的嵌套循环。我错过了什么?