Excel VBA生成3列或更多列的单元格组合

时间:2014-09-14 21:46:32

标签: excel vba excel-vba

我想在Excel中创建关键字组合,但不是所有可能的排列(这会产生太多组合)

以下是3个示例列,我在此列出了2个值:

A:
Two
Three

B:
Red
Blue

C:
Shirts
Jackets

结果看起来像这样:

Two Red Shirts
Two Red Jackets
Two Blue Shirts
Two Blue Jackets
Three Red Shirts
Three Red Jackets
Three Blue Shirts
Three Blue Jackets

我不想要改变自己的立场,所以第三个词不能成为第一个。列可以具有不同数量的单元格。每个单元格可能有多个单词,如果将3列组合更改为4或5就很容易,那将是完美的。

提前致谢

1 个答案:

答案 0 :(得分:2)

这样的事可能有用:

Sub test()
  Dim x, y, z, lastRow As Long
  lastRow = ThisWorkbook.Sheets(1).UsedRange.Rows.Count
  For Each x In Range("A1:A" & lastRow)
    For Each y In Range("B1:B" & lastRow)
      For Each z In Range("C1:C" & lastRow)
        Debug.Print x & " " & y & " " & z
      Next z
    Next y
  Next x
End Sub

我将输出写入立即窗口,但您可以将它放在任何您喜欢的位置。

如果要添加更多列,则需要添加更多循环。如果单元格为空,则它将不附加任何内容(不存在的单元格内容)到字符串。