随机化基诺董事会

时间:2017-07-28 22:07:23

标签: excel

尝试创建基诺板,人们可以按下按钮并获得20个随机突出显示的数字。 keno板从A1到J10,这是我用来随机化的代码。

Sub GetRandomCell()

Dim i As Integer
i = 1

Do While i < 21

    Dim RNG As Range
    Set RNG = Range("A1:j10")

    Dim randomCell As Long
    randomCell = Int(Rnd * RNG.Cells.Count) + 1

    With RNG.Cells(randomCell)
        .Select
        .Interior.Color = vbYellow
    End With

    i = i + 1
Loop

End Sub

我遇到的问题是它并不总是生成20个黄色单元格。我如何确保总有20个?

1 个答案:

答案 0 :(得分:0)

Sub GetRandomCell()
Dim i       As Integer
Dim RNG     As Range
Set RNG = Range("A1:J10")
Dim randomCell As Long
i = 1
Do While i < 21
    randomCell = Int(Rnd * RNG.Cells.Count) + 1
    If RNG.Cells(randomCell).Interior.Color <> vbYellow Then
        RNG.Cells(randomCell).Interior.Color = vbYellow
        i = i + 1
    End If
Loop
End Sub

正如@KenWhite所提到的那样,你有一个单元&#34;覆盖&#34;它可能(甚至可能在这么小的范围内)。它已经是黄色了。只需添加一个测试,如上所述,首先检查单元格颜色,如果不是黄色,则,然后变黄。