VBA编程:创建不重复随机数生成器(1-10000范围内)
版权申诉
5星 · 超过95%的资源 126 浏览量
更新于2024-08-11
收藏 1KB TXT 举报
本篇VBA代码是一个名为“生成不重复的随机数”的子程序,用于在Microsoft Excel中创建不重复的随机数序列。该程序主要用于在一个指定的范围内(由用户输入的最小值、最大值和随机数的精度决定)生成指定数量的随机数,确保每个生成的数值都是唯一的,避免重复。
1. 函数定义:
- `Sub 生成不重复的随机数()`: 定义了一个名为“生成不重复的随机数”的子过程,它会执行一系列操作以生成并填充不重复的随机数。
2. 输入验证:
- 首先,程序检查用户所选单元格的数量,如果超过10000个,会弹出警告并终止函数。
- 接着,通过`Application.InputBox`获取用户输入的最小值(默认为0)、最大值(默认为100)和随机数的精确度(如1或0.2)。如果用户输入的不是数值,程序会结束。
- 计算需要生成的随机数数量(需要Count/Unit),以确保不会超过可选单元格的数量。
3. 避免重复:
- 使用`scripting.dictionary`对象(字典)来存储已经生成的随机数,确保每个数值只出现一次。
- 使用`Rnd()`函数生成0到1之间的随机小数,然后根据精度调整范围。
- 在一个循环中生成随机数,直到找到一个不在字典中的新数值,将其添加到选定单元格并存储在字典中。
4. 错误处理:
- 使用`OnErrorResumeNext`语句处理可能出现的错误,使得即使在出现错误时程序仍能继续执行,直到找到可用的随机数。
5. 结束条件:
- 如果生成的随机数数量小于或等于所需的唯一数值,那么程序会正常结束,并将随机数填入指定的单元格。
通过这个VBA函数,用户可以在Excel工作表上方便地生成一段指定范围内的不重复随机数序列,这对于数据分析、模拟实验等场景非常有用。需要注意的是,当需要生成的随机数过多而超出范围时,程序会自动调整需要生成的随机数数量以适应用户选择的单元格范围。
2020-05-06 上传
2013-04-08 上传
2023-06-11 上传
2023-03-26 上传
2023-11-04 上传
2024-10-31 上传
2023-05-31 上传
2023-05-10 上传
Excel_VBA创维大表格จุ๊บ
- 粉丝: 803
- 资源: 709
最新资源
- MATLAB实现小波阈值去噪:Visushrink硬软算法对比
- 易语言实现画板图像缩放功能教程
- 大模型推荐系统: 优化算法与模型压缩技术
- Stancy: 静态文件驱动的简单RESTful API与前端框架集成
- 掌握Java全文搜索:深入Apache Lucene开源系统
- 19计应19田超的Python7-1试题整理
- 易语言实现多线程网络时间同步源码解析
- 人工智能大模型学习与实践指南
- 掌握Markdown:从基础到高级技巧解析
- JS-PizzaStore: JS应用程序模拟披萨递送服务
- CAMV开源XML编辑器:编辑、验证、设计及架构工具集
- 医学免疫学情景化自动生成考题系统
- 易语言实现多语言界面编程教程
- MATLAB实现16种回归算法在数据挖掘中的应用
- ***内容构建指南:深入HTML与LaTeX
- Python实现维基百科“历史上的今天”数据抓取教程