首页 > 解决方案 > 如何从范围中选择一个随机单元格?

问题描述

我正在尝试制作一个随机单元格选择器。

我在 A 列中有一个名称列表 - 在单元格 1 到 10 中。

我在工作表上有一个按钮。它应该在列表中随机选择一个名称并使其成为另一种颜色。
在此处输入图像描述

标签: excelvbarandom

解决方案


您可以使用 RandBetween 工作表函数。它将生成一个介于 1 和 10 之间的数字,并使用它来选择范围内的单元格A1:A10。下面的示例使用工作表中的 ActiveX 命令按钮。

Option Explicit
Private Sub CommandButton1_Click()
    With ThisWorkbook.Worksheets("Sheet1").Range("A1:A10") '<==change to your sheet with data and button
        .ClearFormats
        .Cells(Application.WorksheetFunction.RandBetween(1, 10)).Interior.Color = vbRed
    End With
End Sub

如果您想利用Randomize, 进行种子设置,您可以使用以下重写。功能来源是wellsr.com(我的小改编)。

Option Explicit
Private Sub CommandButton1_Click()
    With ThisWorkbook.Worksheets("Sheet1").Range("A1:A10")
        .ClearFormats
        .Cells(RndBetween(1, 10)).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

推荐阅读