【问题标题】:Generate Combinations from Multiple Lists Including Null Columns using Excel VBA使用 Excel VBA 从包括空列在内的多个列表生成组合
【发布时间】:2012-12-19 05:58:38
【问题描述】:

我有两张表格,Sheet1 有一堆信息,有 4 个空列,Sheet2 有 4 个列表,每个列表下都有一堆内容。 示例:

列表1:A、B、C
清单 2:D、E、F、G
清单 3:H、I、J、K、L、M
清单 4:N

我想用列表的所有组合填充 Sheet1 中的空列,并为生成的每个组合复制原始的 Sheet1 内容。 示例:(只是一个大概的想法,没有特定的顺序)

内容XYZ|(空)|(空)|(空)|(空)
内容XYZ|A|(空)|(空)|(空)
内容XYZ|B|(空)|(空)|(空)
...
内容XYZ|(空)|D|(空)|(空)
...
内容XYZ|(空)|(空)|(空)|N
...
内容XYZ|B|F|(空)|(空)
...
内容XYZ|(空)|G|(空)|N
...
内容XYZ|(空)|E|K|N
...
内容XYZ|C|G|M|N

我已经完成了复制部分,并且卡在了组合部分。这是我到目前为止所拥有的,如果有人可以帮助我完成剩下的工作,请提前感谢!

Sub DupSubGroup()

    b = 1
    d = 1
    f = 1
    h = 1

    Do

        Sheets(1).Activate
        Sheets(1).Range("A1:F1").Copy
        erow = Sheets(1).Cells(Rows.Count, 1).End(xlUp).Offset(1, 0).Row
        ActiveSheet.Paste Destination:=Sheets(1).Rows(erow)

    ...

    Loop While b <= Sheet2.Columns("B:B").SpecialCells(xlVisible).Rows.Count And d <=    Sheet2.Columns("D:D").SpecialCells(xlVisible).Rows.Count And f <= Sheet2.Columns("F:F").SpecialCells(xlVisible).Rows.Count And h <= Sheet2.Columns("H:H").SpecialCells(xlVisible).Rows.Count

【问题讨论】:

    标签: excel combinations vba


    【解决方案1】:

    如果您正在寻找一个创建所有排列的循环,这里就是一个例子:

    Sub Test()
      Dim List1 As Variant, List2 As Variant, List3 As Variant
      List1 = Array("A", "B", "C", "D")
      List2 = Array(1, 2, 3)
      List3 = Array(True, False)
    
      Dim I1 As Integer, I2 As Integer, I3 As Integer, R As Integer
      R = 1
      For I1 = 0 To UBound(List1)
        For I2 = 0 To UBound(List2)
          For I3 = 0 To UBound(List3)
            Cells(R, 1) = List1(I1)
            Cells(R, 2) = List2(I2)
            Cells(R, 3) = List3(I3)
            R = R + 1
          Next I3
        Next I2
      Next I1
    End Sub
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-07-14
      • 2014-09-15
      • 2013-06-16
      • 2013-04-14
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多