如何使用vba在范围内随机生成0和1?

时间:2017-09-06 13:41:48

标签: vba

我试图使用vba在一个范围内生成两个随机整数0和1;然而,当我运行sub时,它只用相同值填充单元格;要么是1还是0。 代码的问题在哪里?

Private Sub Btn_RandomNumbers_Click()
 ThisWorkbook.Sheets("Sheet1").Range("c3:c302").value = 
Application.Choose(Application.RandBetween(1, 2), 0, 1)
End Sub

2 个答案:

答案 0 :(得分:1)

您需要循环并将值分别放在每个单元格中:

我们可以将公式放在整个范围内,计算然后将值重新指定给该范围。

Private Sub Btn_RandomNumbers_Click()
 With ThisWorkbook.Sheets("Sheet1").Range("c3:c302")
    .Formula= "=RANDBETWEEN(0,1)"
    Application.Calculate
    .Value = .Value
 End With

End Sub

答案 1 :(得分:0)

您生成一次值,并使用此值填充整个范围。如果您希望每个单元格都是随机的,则需要创建一个循环并遍历每个单元格。

伪代码:

For each Cell in Range Do
 'write random number in "Cell"
Next Cell