Table of contents
这篇文章说明了4个例子 随机数发生器 在这里,我们将使用Excel内置的Rnd函数来配置我们的代码。 让我们深入到例子中,学习生成唯一随机数的技术。
下载实践工作手册
下载这本练习手册,在阅读本文时进行练习。
无重复的随机数发生器.xlsmExcel VBA中无重复的随机数发生器的4个例子
在Visual Basic编辑器中编写代码
拟 产生没有重复的随机数 ,我们需要 开放 和 编写VBA代码 在 Visual Basic编辑器。 遵循 步骤 至 开放 的 Visual Basic编辑器 并在那里写一些代码。
- 转到 开发商 的选项卡上的 Excel功能区 .
- 点击 的 Visual Basic选项。
- 在 视觉基础应用程序 窗口,点击 插入下拉菜单 至 选择 的 新模块 选择。
现在把你的 编码 里面的 视觉代码编辑器 和 按F5 至 运行 它。
1. 使用VBA的Rnd函数来生成无重复的随机数
ǞǞǞ Rnd功能 用在 Excel VBA 至 产生随机数 是 0之间 和 1个独家。
任务 : 生成10个随机数 之间 0 和 1 在 A1:A10单元格。
编码 : 插入 下面的 编码 在 Visual Basic编辑器 并按 F5 至 运行 它。
Public Sub GenerateRandomNumNoDuplicates() Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = Rnd Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>=1 randomNumber = Rnd Loop Rng.Value = randomNumber Next End Sub
输出 :上述截图显示 10个独特的随机数 在 范围为0和1。
代码解释。
在这段代码中,我们使用了 Rnd功能 至 插入随机数 在 单元格区域A1:A10 .之前 插入 a 新号码 ,我们使用了一个 Do While 循环 至 样子 为 数 在 预定义的单元格范围(A1:A10)。 是否 已经存在 或 不 要检查 存在 的。 数 在 细胞范围 每次,我们都将代码配置为 COUNTIF功能 , 此功能 检查 a 新的随机数 在 列表 的 在插入之前已经存在的数字。
阅读更多。 用Excel公式生成随机数(5个例子)
2. 无重复的定义下限和上限的随机数发生器
拟 产生随机数 在一个 界定范围 ,我们需要设置 下界 和 上行线 在我们的VBA代码中,对于信息,... 下界 是指 最低数量 和 上行线 是指 最高数字 在 范围 我们可以使用下面的方法来生成随机数。 公式 在我们的代码中。
(上界-下界+1)*Rnd+下界
2.1 随机数字发生器--十进制
任务 : 生成10个随机数 之间 10 和 20 在 A1:A10单元格。
编码 : 插入 下面的 编码 在 Visual Basic编辑器 并按 F5 至 运行 它。
Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 10 Set cellRange = Range("A1:A10") cellRange.Clear For Each Rng In cellRange randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)> = 1 randomNumber = (upperbound - lowerbound + 1) * Rnd + lowerbound Loop Rng.Value =randomNumber Next End Sub
输出 :上述截图显示 10个独特的随机数 在 范围为1和10。
2.2 随机数发生器--整数
在这个例子中,我们将使用 VBA的Int函数 至 移除 的 分数部分 从 随机数 .
任务 : 生成20个随机整数 之间 1 和 20 在 A1:B10单元格。
编码 : 插入 下面的 编码 在 Visual Basic编辑器 并按 F5 至 运行 它。
Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)>=1 randomNumber = Int((upperbound - lowerbound + 1) * Rnd + lowerbound) LoopRng.Value = randomNumber Next End Sub
输出 :上述截图显示 20个独特的随机整数 在 范围为1和20。
阅读更多。 Excel中无重复的随机数发生器(9种方法)
类似读物
- 带有数据分析工具和Excel函数的随机数生成器
- 如何在Excel中生成随机数据(9种简单方法)
- 在Excel中随机生成5位数的数字(7个例子)。
- 在Excel中随机生成4位数的数字(8个例子)。
- 在Excel中从列表中生成随机数(4种方法)
3. 在Excel VBA中为唯一的随机数发生器指定小数位
我们可以用 圆形功能 在我们的代码中为 指定 的 数 的 小数点位 在 随机产生的唯一号码 ...... 句法 的函数是-
Round(expression, [numdecimalplaces])
我们需要 指定 的 第2个论点 按照我们 要求 .
任务 : 生成20个小数点后2位的随机数 之间 1 和 20 在 A1:B10单元格。
编码 : 插入 下面的 编码 在 Visual Basic编辑器 并按 F5 至 运行 它。
Public Sub GenerateRandomNumNoDuplicates() lowerbound = 1 upperbound = 20 Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2) Do While Application.WorksheetFunction.CountIf(cellRange, randomNumber)> = 1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, 2)循环 Rng.Value = randomNumber Next End Sub
输出 :上述截图显示 20个独特的随机整数,有2个小数位 在 范围为1和20。
阅读更多。 在Excel中生成带小数的随机数(3种方法)
4. 在Excel VBA中开发一个无重复的随机数发生器的用户表单
在这个插图中,我们将展示如何使用一个 用户表格 在 Excel VBA 至 产生随机数 与 没有重复的 .
任务。 生成20个随机数 在单元格范围内 A1:B10 使用一个 用户表格 与 输入值 (i) 下界 (二) 上行线 (三) 小数点后的数字。
创建一个用户表格。
按照以下步骤,创建一个 用户表格 与我们 所需的输入字段 .
- 转到 开发商 的选项卡上的 Excel功能区 .
- 点击 的 Visual Basic选项。
- 在 视觉基础应用程序 窗口,点击 插入下拉菜单 至 选择 的 用户表格 选择。
- 在 用户表格添加 a 标签 .
- 标题 标签 作为 下限 在属性中。
- 添加 二 更多 标签 名为 上层建筑 和 小数点位置 .
- 现在添加 三个TextBoxes 在 用户表格 .
- 在这个阶段。 增加 a 命令按钮 并将其命名为 生成 .
- 现在。 双击 的 命令按钮 并放入以下内容 编码 在 代码编辑器 .
Private Sub CommandButton1_Click() Dim lowerbound As Integer Dim upperbound As Integer Dim decimalPlaces As Integer lowerbound = Val(TextBox1.Text) upperbound = Val(TextBox2.Text) decimalPlaces = Val(TextBox3.Text) Set cellRange = Range("A1:B10") cellRange.Clear For Each Rng In cellRange randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Do WhileApplication.WorksheetFunction.CountIf(cellRange, randomNumber)>=1 randomNumber = Round((upperbound - lowerbound + 1) * Rnd + lowerbound, decimalPlaces) Loop Rng.Value = randomNumber Next End Sub
- 新闻 F5 至 运行 的 编码 和 用户表格 有 出现 .
- 把 下界 , 上行。 和 数 的 小数点位 在 用户表格 和打 生成按钮 .
输出 : 在 单元格A1:B10 导致的,有 20个随机数 与 2个小数位 在 范围为1至30。
阅读更多。 如何在Excel中生成无重复的随机数(7种方法)
需要记住的事情
- 我们也可以用 修复功能 而不是 符号功能 至 产生唯一的整数 职能 移除 的 分数部分 的一个 数 就像 符号功能 .
总结
现在,我们知道了如何在合适的例子的帮助下,在Excel中使用VBA生成唯一的随机数。 希望它能帮助你更自信地使用该功能。 有任何问题或建议,不要忘记把它们放在下面的评论栏里。