如何在vba中生成随机数?

在VBA中,您可以使用不同的方式在Excel中生成随机数,在本文中,我们将一一研究它们。

RND功能

为了生成随机数,在 VBA 中,有一个名为RND的函数。该函数意味着随机,当您在代码中使用该函数时,它会返回 0 到 1 之间的随机数。在 RND 中,您不需要指定任何参数。

 Range("A1") = Rnd()

上面的代码使用它来获取 A1 中的随机数,并返回 0.705547521。

在vba中生成随机数

但是,当您在整个范围内使用它时,它会在整个范围内返回相同的随机数,这使得它无法用于多次生成随机数。

返回相同的随机数

现在,在这里使用它没有意义,不是吗?但是您可以使用一个解决方案: FOR NEXT LOOP

用于下一个循环

在上面的代码中,您有一个循环,从选定的单元格开始遍历 10 个单元格(一个接一个)并添加一个随机数。

这是完整的代码:

 Sub vba_random_number() Dim i As Long i = 10 For i = 1 To i ActiveCell.Value = Rnd() ActiveCell.Offset(1, 0).Select Next i End Sub

两个数字之间的随机数

如果要生成两个定义数字之间的随机数,在这种情况下,您需要使用两个VBA 函数( RND + INT ) 编写代码。该公式的代码如下所示。

两个数字之间的随机数
 Sub vba_random_number() Dim myRnd As Integer myRnd = Int(2 + Rnd * (45 - 10 + 1)) Range("A1") = myRnd End Sub

当你运行这个宏时,RND使用你设置的最大数和最小数来生成随机数,而INT则去除小数位。

rnd-使用最大和最小数

在 VBA 代码中使用工作表函数生成随机数

在 VBA 中,您可以访问工作表函数并使用它们通过指定参数来获取结果。两个电子表格函数可以帮助您在结果中获得随机数。

  • 兰德之间
  • 兰德·塔罗

在使用这些函数之前,请确保您了解需要设置的参数。现在,在下面的代码中,您可以使用 RANDBETWEEN 来生成两个数字之间的随机数。

use-rand Between-生成两个数字之间的随机数
 Range("A1") = WorksheetFunction.RandBetween(1000, 2000)

这里最大数量是2000,最小数量是1000。同样,您可以使用RANDARRAY,它是一个动态数组函数。

这是代码。

 Range("A1:B10") = WorksheetFunction.RandArray(10, 2, 1000, 2000, True)
use-randarray-which-is-a-dynamic-array-function

如果您查看 RANDARRAY 的语法,您会发现您可以输入整数范围内的随机数,这是我们上面讨论的所有方法都无法实现的。

randarray 语法

添加评论

您的邮箱地址不会被公开。 必填项已用 * 标注