首页 > 解决方案 > 生成 0 和 1 的组合

问题描述

我有两行单元格:A1、B1、C1 和 A2、B2、C2。在这 2 行中的每一行中,只能有一个 1,而其他两个单元格设置为 0。这是一个示例:

    A   B   C
  +---+---+---+
1 | 1 | 0 | 0 |
  +---+---+---+
2 | 0 | 1 | 0 |
  +---+---+---+

我正在尝试遍历所有 9 种可能的组合:第一行的 3 种可能性乘以第二行的 3 种可能性。我该怎么做呢?

标签: vbaexcel

解决方案


这是一种方法:

Function delta(i As Long, n As Long) As Variant
    'returns an array of length n
    'consisting of all 0 with one 1
    'at index i
    Dim A As Variant
    ReDim A(1 To n) As Long
    A(i) = 1
    delta = A
End Function

Sub IterateOver()
    Dim i As Long, j As Long
    For i = 1 To 3
        Range("A1:C1").Value = delta(i, 3)
        For j = 1 To 3
            Range("A2:C2").Value = delta(j, 3)
            'stub for real code:
            MsgBox "Continue?", vbQuestion, "Test"
        Next j
    Next i
End Sub

推荐阅读