Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba 生成0和1的组合_Vba_Excel - Fatal编程技术网

Vba 生成0和1的组合

Vba 生成0和1的组合,vba,excel,Vba,Excel,我有两行单元格:A1,B1,C1和A2,B2,C2。这两行中的每一行只能有一个1,其他两个单元格设置为0。下面是一个例子: abc +---+---+---+ 1 | 1 | 0 | 0 | +---+---+---+ 2 | 0 | 1 | 0 | +---+---+---+ 我试图迭代所有9种可能的组合:第一行的3种可能性乘以第二行的3种可能性。我该怎么做呢?这将为3列生成所有8种组合的0和1 Dim i As Integer For i = 1 To 2^3 Range("A"

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

abc
+---+---+---+
1 | 1 | 0 | 0 |
+---+---+---+
2 | 0 | 1 | 0 |
+---+---+---+

我试图迭代所有9种可能的组合:第一行的3种可能性乘以第二行的3种可能性。我该怎么做呢?

这将为3列生成所有8种组合的
0
1

Dim i As Integer

For i = 1 To 2^3
    Range("A" & i) = (i-1) % 2
    Range("B" & i) = Int((Range("A" & i))/2) % 2
    Range("C" & i) = Int((Range("B" & i))/2) % 2
Next i
尝试自己扩展它

这里有一种方法:

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

请记住,我们不知道你想做什么。总是错误地提供太多的信息。很难理解你想要什么。如果你把你尝试过的东西包括进来,这会有助于我们理解你的问题。这似乎不是OP想要的——尽管他们想要什么还不清楚。伙计,为什么投票被否决,每次编辑OP都会改变他的问题我没有投你反对票。如果有人应该投反对票,那就是OP(尽管我也没有投反对票,因为我试图对新用户更温和)。我投票以“不清楚”结束他们的问题。谢谢。这就是我要找的。