使用Excel VBA从表列中获取唯一组合

时间:2018-05-03 07:48:24

标签: excel vba excel-vba excel-formula

例如,我在列中有以下数据:

enter image description here

我需要使用如下所示的VBA在2列的另一个表中创建所有可能的唯一组合:

enter image description here

有关如何实现这一目标的任何帮助?感谢。

PS。列数据是可变的。它可以有多种货币。上面只是一个小例子。

1 个答案:

答案 0 :(得分:3)

这是一个如何查找所有这些排列的示例。有了这个,你应该能够解决它。

Option Explicit

Public Sub FindPermutations()
    Dim ws As Worksheet
    Set ws = Worksheets("Sheet1")

    Const fRow As Long = 2 'first row
    Const lRow As Long = 5 'last row

    Dim i As Long, j As Long

    For i = fRow To lRow
        For j = i + 1 To lRow
            'print out all permutations
            Debug.Print ws.Cells(i, "A").Value, ws.Cells(j, "A").Value
        Next j
    Next i
End Sub

它是如何运作的?
它使用2个循环。第一个i遍历所有行。第二个j仅从当前i行到最后一行。这可确保不再使用已找到的组合。

请注意,我使用fRowlRow的常量进行简单演示。您可能希望将它们更改为生产环境中的变量。