VBA 有没有办法创建一个按钮,从列表/表格中提取随机数并将其插入到另一个单元格中?

问题描述 投票:0回答:1

首先我要说的是,我之前没有使用 Excel 中的 (ActiveX) 按钮的经验,我了解 excel 的使用方法,但从未使用过那么多 VBA。我对学习非常开放,所以任何朝着正确方向的推动都会很棒!

我正在编写一个 Excel 工作簿,它可以模拟我们正在玩的游戏的股票市场。为了达到喜剧效果,这些值不会按预期变化,而是使用随机数进行修改。我有一个这些随机数的列表,并且希望有一个按钮,按下该按钮后会查找“Delta”列中最底部的空单元格,并粘贴随机数列表中的值。 (见图)

表格示例

1

对于本工作簿的另一部分,我使用了函数:OFFSET(C3,COUNTA(C3:C48)-1,0) 来查找“Delta”列中最底部的填充单元格。也许这可以重复使用?

为了测试该按钮,我尝试创建一个仅适用于一个单元格的更简单的版本。

Private Sub CommandButton1_Click()
    If InStr(1, CommandButton1.Caption, "OFF") Then
        Range("C5").Value = ""
    Else
        Range("C5").Value = Application.WorksheetFunction.Index(Range("Table3[Delta]"), Application.WorksheetFunction.RandBetween(1, Application.WorksheetFunction.CountA(Range("Table3[Delta]"))))
    End If

End Sub

然而,这继续给我“1004”错误消息。

excel vba button
1个回答
0
投票

以下是如何从列表对象/表列中获取随机值的示例:

Dim rng As Range
    
'reference the source range with the numbers
Set rng = ThisWorkbook.Worksheets("Random") _
            .ListObjects("List1").ListColumns("Nums").DataBodyRange

'pick a random number              
Debug.Print rng.Cells(Application.RandBetween(1, rng.Cells.Count)).Value
最新问题
© www.soinside.com 2019 - 2025. All rights reserved.