循环遍历数字组合

时间:2014-03-01 17:23:10

标签: excel-vba vba excel

我正在尝试一种循环使用多种组合的方法,以确保我无需重复即可浏览每个可用组合。让我解释。我有一组数字,例如

20,000
25,000
27,000
29,000

我想通过循环改变这组数字并将新数字复制到另一张表格中,以便我在该表格上的公式可以计算我需要它们计算的任何数字。例如,前几次迭代可能如下所示:

1st
20,000 x 1.001
25,000 x 1
27,000 x 1
29,000 x 1

2nd
20,002 x 1.001
25,000 x 1.001
27,000 x 1
29,000 x 1

第一行数字不应超过第二行。所以20,000只应该高达25,000。

我能够设置一个系统,我设置一个矩阵然后使用= rand()循环一组随机组合,但是这并不能确保我击中每个组合并重复组合。

任何人都可以解释这背后的数学,以及我如何使用循环来实现我的目标?

谢谢!

2 个答案:

答案 0 :(得分:0)

尝试从较小的数字开始。

看看这是否适合你。

Sub looper()


'First Array
Dim myArray(9) As Double

For i = 1 To 10

myArray(i - 1) = i

Next i


'Second Array
Dim myOtherArray(9) As Double

For i = 1 To 10

myOtherArray(i - 1) = i

Next i


'Loop through each one
For Each slot In myArray


For Each otherSlot In myOtherArray


Debug.Print (slot & " * " & otherSlot & " = " & slot * otherSlot)


Next otherSlot


Next slot


End Sub

答案 1 :(得分:0)

GD user1813558,

您的问题包含的细节太少,范围太广,无法提供准确的答案。

  • 你的数字是否是任意的(即你提供的数字是'只是' 样品)或是否按照指定的数字固定?
  • 总会有4个号码吗?
  • 是你的初学者的分布(即他们的差异 值)总是根据你的指示0,+ 5000,+ 2000,+ 2000
  • 是否需要将所有“循环”(或迭代)的结果复制到 另一张纸? (即以增量为单位从20.000循环到25.000) 1.001将需要大约223次迭代,随后是床单, 在结果开始超过25.000之前?)
  • 是否需要为每个迭代结果创建一个新工作表,或者是否需要 是否存在或将结果复制到每次迭代的同一张纸上?

简而言之,请提供更准确的问题。