使用VBA RND函数生成随机数
Excel VBA随机数
到 在vba中生成随机数 我们有一个内置函数叫做 RND。它只需要一个参数一个数字来生成随机数,这也是一个可选参数。它将创建大于0且小于1的随机数。
这与excel函数“ RAND”完全相同。正如我在工作表函数“ RAND”中告诉的那样,在VBA中,我们也可以生成大于0但小于1的随机数。
现在看一下“ RND”功能的语法。
[数字]: 我们可以通过三种方式传递论点。
- 如果我们将数字设为<0,则每次都会生成相同的随机数。
- 如果我们将数字传递为0,它将重复它给出的最新数字。
- 如果我们传递的数字> 0,它将继续为您提供不同的随机数,即序列中的下一个随机数。
如何使用VBA代码生成随机数?
您可以在此处下载此VBA随机数Excel模板– VBA随机数Excel模板范例#1
现在我们将看到使用“ RND”功能的简单示例。请按照以下步骤自行编写VBA代码。
步骤1: 将变量声明为 VBA中的“整数”
代码:
Sub Rnd_Example1()Dim K作为整数结束Sub
第2步: 现在,通过“RND“ 功能。
代码:
Sub Rnd_Example1()Dim K作为整数K = Rnd()End Sub
第三步: 在变量中显示变量“ k”返回的值。 留言框.
代码:
Sub Rnd_Example1()Dim K作为整数K = Rnd()MsgBox K End Sub
现在运行excel宏,看看结果如何。
看发生了什么事。
结果显示为1,其中“ RND”函数只能返回大于零但小于1的数字。
您必须考虑这里出了什么问题。
这是我们分配给变量“ k”的数据类型的错误之处。
如果回头看一下我们已经声明的变量,我们将数据类型分配为Integer。由于我们已将变量分配为Integer,因此它只能显示-32768到32767之间的整数。
只要RND返回十进制数字,VBA就会将十进制数字转换为最接近的整数,即1。
因此,为使公式正常工作,请将变量声明为“双倍的”.
“双精度”是VBA中的数据类型,可以保存十进制值。
代码:
Sub Rnd_Example1()Dim K作为Double K = Rnd()MsgBox K End Sub
现在的代码,看看结果是什么。
单击确定,再运行一次,看看结果如何。
这次我们得到了不同的结果。由于“ RND”本质上是易失性函数,因此每次执行代码时都会产生不同的结果。
例2 –每次都获得相同的随机数
如我们所见,前面的示例“ RND”函数每次执行代码时都会重现结果。为了获得相同的随机数,我们需要一次又一次地将参数传递为零。
代码:
Sub Rnd_Example2()Dim K作为Double K = Rnd(0)MsgBox K End Sub
当我们执行代码时,这将一次又一次产生相同的数字。
Example#3 –产生整个随机数
我们还可以通过使用其他VBA函数或其他输入数字来生成整数。例如,请看下面的代码。
代码:
Sub Rnd_Example3()Dim K为Double K = 1 + Rnd * 100 MsgBox K End Sub
每次执行该代码时,该代码都会生成带有小数点的随机整数。
如果您查看的是不带小数点的整数,那么我们可以使用以下代码。
代码:
Sub Rnd_Example3()Dim K作为Double K = CInt(1 + Rnd * 100)MsgBox K End Sub
这将继续生成从1到100的整数。