【发布时间】:2020-01-27 06:35:21
【问题描述】:
我目前有一个 Excel 电子表格,当用户单击“Go”时,它会为工作表中的单元格分配一个新的随机数。范围值在 20 x 25 矩阵中的 1 到 500 之间。每次用户单击“开始”按钮时,我只想随机选择一个单元格的背景颜色并将其更改为红色。下面的代码当前正在为单元格分配随机数并选择并突出显示随机单元格。但是,当再次单击 Go 时,先前选择的单元格仍然与新选择的单元格一起突出显示。如何在单击 Go 时将其编码为仅突出显示新选择的单元格?
Public Sub GenerateRandom()
Set MyRange = Range("C4:AA23")
For i = 1 To 500
MyRange.Cells(i) = i
Next
For Each Cell In MyRange
swapcell = 1 + Int(Rnd * 500)
savedValue = Cell.Value
Cell.Value = MyRange.Cells(swapcell).Value
MyRange.Cells(swapcell) = savedValue
Next
With MyRange.Cells(1 + Int(Rnd * 500))
MyRange.Cells(RndBetween(1, 500)).Interior.Color = vbRed
End With
End Sub
Public Function RndBetween(ByVal Low, ByVal High) As Integer
Randomize
RndBetween = Int((High - Low + 1) * Rnd + Low)
End Function
【问题讨论】: