我了解Excel单元格中的RANDBETWEEN()函数。这只返回一(1)个值。我希望将其分配给按钮,以便在每次按下按钮时返回不同的值。
我可以创建按钮,我有单元格。我如何链接这两个?
长话短说,每次点击按钮时,一个单元格(比如单元格a1)在值a到b之间得到不同的值。
答案 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)
请注意,在按钮能够使用之前,网站错过了您必须执行的几个重要步骤:
关闭VBA窗口(实际上不是必需的,但不需要将其打开)
退出设计模式。在Excel的“开发工具”选项卡上,仍应突出显示“设计模式”按钮。单击它以取消突出显示它。您现在可以单击按钮。
请注意,如果您想再次更改按钮的代码,则需要再次单击“设计模式”再次突出显示它,然后您可以双击该按钮再次查看代码。