VBA随机化|如何使用随机陈述?
VBA中的随机陈述
VBA随机化 语句是我们在应用RND函数之前添加的简单的单线语句。每当重新打开工作簿时,Randomize语句都会根据计算机的系统时间为RND函数提供新的种子编号。
在谈论Randomize语句之前,让我向您介绍一个使用VBA的简单RND函数。
作为工作表函数“ RAND”,在VBA中,“ RND”也将生成大于0但小于1的随机数。
现在看一下“ RND”功能的语法。
[数字]: 我们可以通过三种方式传递论点。
- 如果我们将数字设为<0,则每次都会生成相同的随机数。
- 如果我们将数字传递为0,它将重复它给出的最新数字。
- 如果我们传递的数字> 0,它将继续为您提供不同的随机数,即序列中的下一个随机数。
例子
例如,请看下面的代码。
代码:
Sub RND_Example()Debug.Print Rnd End Sub
当我在立即窗口中运行代码时,我可以看到以下数字。
同样,当我再次执行此代码3次时,我可以看到以下数字。
现在,我将关闭工作簿并重新打开它。
现在,我将回到可视化基本编辑器窗口。
现在,立即窗口为空且干净。
现在我将再次执行该代码四次,看看在立即窗口中我们将得到什么数字。
我们得到的数字与上面的数字相同。
这看起来不是随机数,因为每次我们重新打开文件时,我们都会从头开始获得相同的数字。
那么,无论工作簿是否重新打开,我们如何生成随机数呢?
我们需要使用“随机化”语句。
如何使用VBA随机语句?
您可以在此处下载此VBA随机化Excel模板– VBA随机化Excel模板范例#1
要获得随机数,我们要做的就是在RND函数之前添加简单的单行代码“ Randomize”。
代码:
Sub Randomize_1()随机化Debug.Print Rnd End Sub
现在,我将运行代码4次,看看能得到什么。
它已在我的本地窗口中生成了以上数字。
现在,我将关闭文件,然后再次重新打开文件。
像往常一样,我们从视觉基本窗口中的空白开始。
现在,我将再次执行代码,看看这次我们得到了什么数字。
哇!!!这次我们得到了不同的数字。
由于我们在RND函数之前添加了语句Randomize,因此每次重新打开文件时,我们都会获得不同的随机数。
看起来像是随机数吗????
范例#2
大于1的随机数
如我们所见,“ RND”功能只能生成从0到1的数字。但是,为了生成大于一个随机数的数字,我们需要使用工作表函数类可用的“ RANDOM BETWEEN”。
因此,要生成大于一个的随机数,我们需要使用以下代码。
代码:
Sub Randomize_2()随机进行Debug.Print Rnd * 100 End Sub
现在,我将执行代码,然后看看我们得到了什么。
这样,每次重新打开excel文件时,我们都可以在VBA中使用“随机化”语句生成随机数。