Vba 生成0和1的组合
我有两行单元格:A1,B1,C1和A2,B2,C2。这两行中的每一行只能有一个1,其他两个单元格设置为0。下面是一个例子: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"
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(尽管我也没有投反对票,因为我试图对新用户更温和)。我投票以“不清楚”结束他们的问题。谢谢。这就是我要找的。