尝试创建基诺板,人们可以按下按钮并获得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个?
答案 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;它可能(甚至可能在这么小的范围内)。它已经是黄色了。只需添加一个测试,如上所述,首先检查单元格颜色,如果不是黄色,则,然后变黄。