自定义Function MyRandom函数获得随机数

《VBA信息获取与处理》教程(版权10178984)是我推出第六套教程,目前已经是第一版修订了。这套教程定位于最高级,是学完初级,中级后的教程。这部教程给大家讲解的内容有:跨应用程序信息获得、随机信息的利用、电子邮件的发送、VBA互联网数据抓取、VBA延时操作,剪贴板应用、Split函数扩展、工作表信息与其他应用交互,FSO对象的利用、工作表及文件夹信息的获取、图形信息的获取以及定制工作表信息函数等等内容。程序文件通过32位和64位两种OFFICE系统测试。是非常抽象的,更具研究的价值。

教程共两册,二十个专题。今日分享内容是:VBA信息获取与处理第二个专题第三节:自定义Function MyRandom函数获得随机数6cf56058b8b7105df81f3ca0160cc4a9.jpeg

【分享成果,随喜正能量】因为时间流逝,无常最是寻常;因为因果不虚,无常也最是公平。一切回报都藏在时间流逝中,没有哪一刹那的善念善行是不作数的。它们都将在未来某个时刻,开出安乐的花。而你只管耕耘,不必问结果,用最大的专注来表达自己的珍惜,像最后一天那样去修行。。

第三节 对于一个给定的数组,随机获得它的元素

在前两节中,我们讲了随机数的基本知识,这些看似我们实际工作的场景利用不大,这讲的内容就接近我们实际的工作场景了。我们有没有一个办法建立一个函数,用于取得指定个数的随机数数组呢?当然可以,我们可以先建立一个数组,这个数组有最大和最小值的限制,然后通过输入参数来决定返回的随机数个数,这样我们在利用的时候就会非常的方便了。

1 自定义Function MyRandom函数

下面是一个Function MyRandom的过程:这个过程有四个输入参数,其中三个是必须的,一个是可选的,我们利用参数Mim, Mam 来表示最小值和最大值,利用参数Ns表示要返回的随机数的个数,还有一个参数 ArrayBase 表示返回数组的最小下标值,我们先看看代码:

Public Function MyRandom(Mim As Long, Mam As Long, _

NS As Long, Optional ArrayBase As Long = 1) As Variant

Dim AA() As Long

Dim BB() As Long

If Mim > Mam Then

MyRandom = Null

Exit Function

End If

If NS > (Mam - Mim + 1) Then

MyRandom = Null

Exit Function

End If

If NS <= 0 Then

MyRandom = Null

Exit Function

End If

ReDim AA(Mim To Mam)

For i = Mim To Mam

AA(i) = i

Next

ReDim BB(ArrayBase To (ArrayBase + NS - 1))

Randomize

For j = LBound(BB) To UBound(BB)

i = Int((Mam - Mim + 1) * Rnd + Mim)

BB(j) = AA(i)

Next

MyRandom = BB

End Function

代码截图:

b303e112ab44c27a025a731bd4980489.jpeg

代码讲解:这个过程是一个函数过程,输入的过程我在刚才已经讲过了,输出是一个数组,这个数组就是我们给定的值。

① Dim AA() As Long

Dim BB() As Long

上面的代码定义了两个动态数组,其中AA()是输入的数组,BB()是最后返回的值。

② If Mim > Mam Then

MyRandom = Null

Exit Function

End If

上面的代码给出了一个条件就是最大值必须要大于最小值。

③ If Ns > (Mam - Mim + 1) Then

MyRandom = Null

Exit Function

End If

上面的代码要求返回的数组个数值不能大于给定输入数值的个数。

④ If Ns <= 0 Then

MyRandom = Null

Exit Function

End If

上面的代码要求返回的数组个数的值不能小于或者等于零。

⑤ ReDim AA(Mim To Mam)

For I = Mim To Mam

AA(I) = I

Next

上面的代码给输入数值赋值

⑥ ReDim BB(ArrayBase To (ArrayBase + Ns - 1))

Randomize

For j = LBound(BB) To UBound(BB)

I = Int((Mam - Mim + 1) * Rnd + Mim)

BB(j) = AA(I)

Next

上面的代码给出返回数组的值

⑦ MyRandom = BB

返回数组

(待续)

本节内容详细代码“参考002工作表.XLSM”

f38d0436bf9f9a7c3be4350448858651.jpeg

我20多年的VBA实践经验,全部浓缩在下面的各个教程中,教程学习顺序:

c407e539716945cadea4940c5d066a5a.jpeg


45a3905ae8fe627c600789def17bd362.jpeg

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/2779305.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

手把手教你开发Python桌面应用-PyQt6图书管理系统-图书信息表格数据显示及搜索实现

锋哥原创的PyQt6图书管理系统视频教程&#xff1a; PyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~_哔哩哔哩_bilibiliPyQt6图书管理系统视频教程 Python桌面开发 Python入门级项目实战 (无废话版) 火爆连载更新中~共计24条视频&…

C++构造和折构函数详解,超详细!

个人主页&#xff1a;PingdiGuo_guo 收录专栏&#xff1a;C干货专栏 大家龙年好呀&#xff0c;今天我们来学习一下C构造函数和折构函数。 文章目录 1.构造函数 1.1构造函数的概念 1.2构造函数的思想 1.3构造函数的特点 1.4构造函数的作用 1.5构造函数的操作 1.6构造函数…

k8s -ingress

概念 Ingress 公开了从集群外部到集群内服务的 HTTP 和 HTTPS 路由&#xff0c;ingress能代理集群为内部的网络&#xff0c;将集群外部的HTTP/HTTPS网络请求转发至不同的service&#xff0c;其本质就是创建一个NodePort类型的svc,和一个nginx 组成 k8s中的ingress 其实是指…

c语言:全局变量与局部变量重名

结论&#xff1a; 作用域小的覆盖作用域大的&#xff0c;顺带一提&#xff0c;在C中&#xff0c;调用全局的变量前面要加:: #include <stdio.h> using namespace std;int a, b; void fun() {a 100;b 200; }int main() {int a 5, b 7;fun();printf("%d %d\n&quo…

Linux操作系统基础(十):Linux系统信息

文章目录 Linux系统信息 一、时间和日期 1、date时间 2、cal日历 二、磁盘、内存信息 Linux系统信息 本篇文章内容主要是为了方便通过远程终端维护服务器时, 查看服务器上当前 系统日期和时间 / 磁盘空间占用情况 /程序执行情况。 学习终端命令都是查询命令, 通过这些命…

假期day7

设计qq界面 代码 ui->lab1->setPixmap(QPixmap(":/pictrue/denglu.webp"));ui->lab1->setScaledContents(true);ui->lab2->setPixmap(QPixmap(":/pictrue/passwd.jpg"));ui->lab2->setScaledContents(true);ui->lab3->setP…

Python API的使用简述

文章目录 Web APIGit 和 GitHub使用 API 调用请求数据安装 requests处理响应 API处理响应字典监视API的速率限制使用 Pygal 可视化仓库改进Pygal图表添加自定义工具提示 本篇文章&#xff1a;我们叙述如何编写一个独立的程序&#xff0c;并对其获取的数据进行可视化。这个程序将…

《统计学简易速速上手小册》第4章:假设检验(2024 最新版)

文章目录 4.1 假设检验的基本概念4.1.1 基础知识4.1.2 主要案例&#xff1a;新饮料偏好测试4.1.3 拓展案例 1&#xff1a;教育方法的效果比较4.1.4 拓展案例 2&#xff1a;工作满意度调查 4.2 常见的假设检验4.2.1 基础知识4.2.2 主要案例&#xff1a;产品包装改进的效果评估4.…

考研数据结构笔记(7)

循环链表、静态链表、顺序表和链表的比较 循环链表循环单链表循环双链表 静态链表什么是静态链表如何定义一个静态链表&#xff1f;简述基本操作的实现 顺序表和链表的比较逻辑结构物理结构/存储结构数据的运算/基本运算创建销毁增加、删除查找 循环链表 循环单链表 循环双链表…

前端JavaScript篇之ajax、axios、fetch的区别

目录 ajax、axios、fetch的区别AjaxAxiosFetch总结注意 ajax、axios、fetch的区别 在Web开发中&#xff0c;ajax、axios和fetch都是用于与服务器进行异步通信的技术&#xff0c;但它们在实现方式和功能上有所不同。 Ajax 定义与特点&#xff1a;Ajax是一种在无需重新加载整个…

2023年全国职业院校技能大赛软件测试赛题第3套

2023年全国职业院校技能大赛 软件测试赛题第3套 赛项名称&#xff1a; 软件测试 英文名称&#xff1a; Software Testing 赛项编号&#xff1a; GZ034 归属产业&#xff1a; 电子与信息大类 …

第2集《佛说四十二章经》

请大家打开讲议第二面&#xff0c;二、经文大意。 在正式讲解经文之前&#xff0c;先说明本经的修学纲要。本经的经文大意共分三段&#xff0c;第一段是总标&#xff0c;第二段是别明&#xff0c;第三段是结劝。总标又分两小段&#xff0c;先看第一小段。 是经顿渐兼收。首唱…

抛弃Spring Cloud Gateway,得物 使用Netty架构100Wqps网关

说在前面 在40岁老架构师 尼恩的读者交流群(50)中&#xff0c;很多小伙伴拿到一线互联网企业如阿里、网易、有赞、希音、百度、滴滴的面试资格。 最近&#xff0c;尼恩指导一个小伙伴简历&#xff0c;写了一个《高并发网关项目》&#xff0c;此项目帮这个小伙拿到 字节/阿里/…

洛谷p3435 OKR-Periods of Words

题目链接 反思 我们之前用 k m p kmp kmp都是用到前缀字串的最长匹配长度&#xff0c;本题则需要利用 p m t pmt pmt数组找到最短匹配长度 思路 题目中匹配前缀的意思是&#xff0c;在字符串 a a a的前缀中&#xff0c;某个前缀自身重复两遍后能把 a a a包括进来 如图&…

【Linux】make和Makefile

目录 make和Makefile make和Makefile 我们使用vim编辑器的时候&#xff0c;在一个文件里写完代码要进行编译&#xff0c;要自己输入编译的指令。有没有一种可以进行自动化编译的方法——makefile文件&#xff0c;它可以指定具体的编译操作&#xff0c;写好makefile文件&#x…

Hive窗口函数详解

一、 窗口函数知识点 1.1 窗户函数的定义 窗口函数可以拆分为【窗口函数】。窗口函数官网指路&#xff1a; LanguageManual WindowingAndAnalytics - Apache Hive - Apache Software Foundationhttps://cwiki.apache.org/confluence/display/Hive/LanguageManual%20Windowing…

奶茶点餐|奶茶店自助点餐系统|基于微信小程序的饮品点单系统的设计与实现(源码+数据库+文档)

奶茶店自助点餐系统目录 目录 基于微信小程序的饮品点单系统的设计与实现 一、前言 二、系统功能设计 三、系统实现 1、商品信息管理 2、商品评价管理 3、商品订单管理 4、用户管理 四、数据库设计 1、实体ER图 2、具体的表设计如下所示&#xff1a; 五、核心代码 …

云计算运维 · 第三阶段 · 代码上线案例

学习b记 第三阶段 持续集成案例 这一章做一个小的案例&#xff0c;git、gitlab、jenkins、sonarqube、maven、shell把这周学的一整个流程串联起来做一个完整的代码发布流程案例&#xff0c;这一部分东西比较多&#xff0c;相对于之前的笔记这个会做的仔细一点。#嘿嘿回家就是…

3秒实现无痛基于Stable Diffusion WebUI安装ComfyUI!无需重复安装环境!无需重复下载模型!安装教程

标题略有夸张的表达了接下来这一套确实很简单&#xff0c;相较于直接下载或者通过秋叶包更新而言。大大节省磁盘空间&#xff0c;和下载时间。 这篇教程不需要你有&#xff1a; 代码基础。都是复制粘贴就完事。魔法。 这篇教程默认你已经有&#xff1a; 1. 本地能够正常使用…

【计算几何】确定两条连续线段向左转还是向右转

确定两条连续线段向左转还是向右转 目录 一、说明二、算法2.1 两点的叉积2.2 两个段的叉积 三、旋转方向判别3.1 左转3.2 右转3.3 共线判别 一、说明 如果是作图&#xff0c;或者是判别小车轨迹。为了直观地了解&#xff0c;从当前点到下一个点过程中&#xff0c;什么是左转、…