在a到b之间生成一个随机数

时间:2017-01-31 04:33:20

标签: excel vba button random

我了解Excel单元格中的RANDBETWEEN()函数。这只返回一(1)个值。我希望将其分配给按钮,以便在每次按下按钮时返回不同的值。

我可以创建按钮,我有单元格。我如何链接这两个?

长话短说,每次点击按钮时,一个单元格(比如单元格a1)在值a到b之间得到不同的值。

3 个答案:

答案 0 :(得分:2)

尝试以下

Private Sub CreateRandom()

  'random number between 11 and 100
  Debug.Print NewRandom(11, 100)

End Sub

Private Function NewRandom(ByVal FromLimit As Integer, ByVal ToLimit As Integer) As Integer

    Randomize
    randomNumber = Int((ToLimit - FromLimit) * Rnd) + FromLimit
    NewRandom = randomNumber

End Function

Private Sub CommandButton1_Click()

  'random number between 30 and 100
  Sheets("Sheet2").Range("A1").Value = NewRandom(30, 100)

End Sub

答案 1 :(得分:1)

MI Consol:

Sheets:
Private Sub CommandButton1_Click()
Call p
End Sub

Private Sub CommandButton3_Click()
Call save
End Sub

Private Sub CommandButton4_Click()
Call EMail
End Sub

Private Sub CommandButton5_Click()
Call iSMS
End Sub

Private Sub CommandButton6_Click()
Call continue
End Sub

Private Sub CommandButton7_Click()
Call Continue1
End Sub

答案 2 :(得分:0)

如果您仍在使用RANDBETWEEN函数并且只是希望它在命令上生成新值,只需按F9强制Excel重新计算所有公式。然后RANDBETWEEN将生成一个新的随机数。 (如果它没有改变值,那只是因为它偶然生成了相同的随机数。继续按F9获取新的随机数。)

请注意,更改电子表格中的任何公式也会导致RANDBETWEEN函数生成新值。

如果您希望仅在命令时生成新的随机数,则需要创建一个宏,可以通过按钮轻松调用。我假设你根本不熟悉宏,所以以下是一个简单的解决方案。

以下网站介绍了如何创建一个运行宏的简单按钮。 (请注意,此特定方法仅适用于ActiveX按钮,而不适用于“表单”按钮。)

https://www.tutorialspoint.com/vba/vba_excel_macros.htm

您只需要使用以下代码替换其示例中的代码(MsgBox“Hi”):

Range("A1") = WorksheetFunction.RandBetween(a,b)

将a和b替换为您想要获得随机数的数字。您可以通过以下几种方式实现这一目标:

如果你总是想要它在相同的两个数字(例如1和10)之间,你可以将它们硬编码到宏中:

Range("A1") = WorksheetFunction.RandBetween(1,10)

如果您想在同一电子表格中记录的两个数字之间(例如在单元格B1和B2中),您可以参考单元格:

Range("A1") = WorksheetFunction.RandBetween(Range("B1"),Range("B2"))

或者您可以在弹出窗口中询问数字:

a = InputBox("Enter a")
b = InputBox("Enter b")
Range("A1") = WorksheetFunction.RandBetween(a, b)

请注意,在按钮能够使用之前,网站错过了您必须执行的几个重要步骤:

  1. 关闭VBA窗口(实际上不是必需的,但不需要将其打开)

  2. 退出设计模式。在Excel的“开发工具”选项卡上,仍应突出显示“设计模式”按钮。单击它以取消突出显示它。您现在可以单击按钮。

  3. 请注意,如果您想再次更改按钮的代码,则需要再次单击“设计模式”再次突出显示它,然后您可以双击该按钮再次查看代码。