vba - Excel VBA 代码 - 有限制的组合

标签 vba algorithm excel combinations

我必须生成一个组合列表,这些组合是字段的指示符,因为我正在尝试生成一些条件来查询数据。我有一些来自 here 的组合代码.

在具有 1,2,4 组合的 Power/Torque/Cylinders 示例中:

Fields for combinations

我需要算出这 3 个字段的组合,因此输出将是:

Example combinations within combination

那么基本上所有的组合,但不是来自同一个“桶”,如果这有意义的话?

编辑: 组合的数量(即示例中的 3 个)将根据我提供的链接进行更改。链接中的组合决定了要查看或使用的字段。例如,组合 123 将是图像中的前 3 个字段。组合 1,2 将是第一个 2,而 1,3 将是第一个和最后一个。我有相应的代码。

现在我们有了组合桶,需要处理这些字段的组合。

此外,我正在寻找有关如何处理算法的指导,而不一定是有人为我做这件事😊

再举一个例子,如果 1,2,3 是列组合,则预期输出将是:

20-0.5-200

20-0.5-300

20-0.5-400

等等

最佳答案

嵌套循环:

Sub allCombo(set1 As Range, set2 As Range, set3 As Range)
    Dim c1, c2, c3, n
    For Each c1 In set1
        For Each c2 In set2
            For Each c3 In set3
                n = n + 1
                Debug.Print "#" & n, c1, c2, c3
            Next c3
        Next c2
    Next c1
End Sub

示例用法:

Sub test()
    allCombo [I2:I4], [J2:J3], [L2:L3]
End Sub

结果:

#1             20            0.5           4 
#2             20            0.5           8 
#3             20            0.8           4 
#4             20            0.8           8 
#5             30            0.5           4 
#6             30            0.5           8 
#7             30            0.8           4 
#8             30            0.8           8 
#9             40            0.5           4 
#10            40            0.5           8 
#11            40            0.8           4 
#12            40            0.8           8 

关于vba - Excel VBA 代码 - 有限制的组合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49244082/

相关文章:

vba - 通过循环反复检查整个脚本字典是不好的做法吗? VB6

delphi - 将 Word 文档中的项目符号替换为破折号

c# - 查找两个列表交集的高效数据结构

c - 将用 C DLL 编写的 BSTR 字符串发送到 Excel

vba - [VBA][excel]在 'Japanese - Katakana'中使用 'inStr'时发生错误

Excel VBA 更改单元格颜色

algorithm - 图中的非循环交叉切割

algorithm - 简单的排名算法

c# - 使用 LINQ 查询巨大的 CSV 和 Excel

vba - 使 Excel 图表中的特定系列(线)不可见