【发布时间】:2022-11-04 17:56:37
【问题描述】:
绅士!在列出所有可能的组合时,我无法找出将元素数量定义为变量的方法。我有一个硬编码示例,其中元素数 = 3
'Declare variables
Dim a as long
Dim b as Long
Dim C as Long
Dim ElementsArray as variant
'Array
ElementsArray = array("1400","1900","2400")
'Loop through combinations
for a = lbound(ElementsArray) to ubound(ElementsArray)
for B= lbound(ElementsArray) to ubound(ElementsArray)
for c = lbound(ElementsArray) to ubound(ElementsArray)
debug.print(ElementsArray(a) & " - " & ElementsArray(b) & " - " & ElementsArray(c))
next c
next b
next a
但我正在寻找的是一个代码,其中嵌套的 For 循环的数量可能是一个变量,或者是一些其他方式来排列所有可能的组合。请帮助解决这个问题。
【问题讨论】:
-
嵌套循环不能是可变的 - 除非您编写一个为您编写代码的例程,将其注入 VBE 项目并执行它。但是,递归例程可以解决问题,而不是嵌套循环。
-
感谢您的澄清,我的意思是也许它可以表示为“goto RepeatLoop”的东西,其中代码将通过相同的循环必要次数。我想这有点像你的建议?你想举一个例子来说明我按照你的建议编写的代码吗?
标签: vba for-loop permutation