- 超级版主
- 1228894
- 26984
- 25
- 8059 朵
- 36138 个
- 4755 个
- 421340
- 2012-07-18
|
1#
t
T
发表于 2022-06-03 16:03
|
|只看楼主
实现效果:随机基于的命令:
- Randomize'初始化[不进行初始化将出现重复或有规律数据]
- Rnd'返回一个0-1的数值
随机的公式:- 随机数 = Int((最大值 - 最小值 + 1) * Rnd + 最小值)
复制代码'即如果要随机一个-5到1的数字 公式应该为 - 随机数 = Int((1 +5 + 1) * Rnd -5)
复制代码 将其改成函数方便调用:- TracePrint 随机数(1, 3)
- Function 随机数(最小值, 最大值)
- Randomize
- 随机数 = Int((最大值 - 最小值 + 1) * Rnd + 最小值)
- End Function
复制代码 扩展之随机数字:- TracePrint 随机数字(5,False ,1, 5)'参数2写true 随机出来的数字将有重复
- Function 随机数字(数量,是否重复,最小值, 最大值)
- Dim 返回值
- Randomize
- If 是否重复 = True Then
- For 数量
- 返回值 = Int((最大值 - 最小值 + 1) * Rnd + 最小值)
- 随机数字 = 随机数字 & 返回值
- Next
- Else
- For 数量
- Do
- 返回值 = Int((最大值 - 最小值 + 1) * Rnd + 最小值)
- Loop Until InStr(随机数字, 返回值) < 1
- 随机数字 = 随机数字 & 返回值
- Next
- End If
- End Function
复制代码 扩展之随机字母:- TracePrint 随机字母(6,False,3)
- Function 随机字母(数量,是否重复,选项1至3)'1-3"1大写、2小写、3大小写"
- Dim 返回值
- Randomize
- If 选项1至3 = 1 and 是否重复 = False Then
- For 数量
- Do
- 返回值 = Int((122 - 97 + 1) * Rnd + 97)
- Loop Until InStr( 随机字母, chr(返回值)) < 1
- 随机字母 = 随机字母 & chr(返回值)
- Next
- ElseIf 选项1至3 = 1 and 是否重复 = True Then
- For 数量
- 返回值 = Int((122 - 97 + 1) * Rnd + 97)
- 随机字母 = 随机字母 & chr(返回值)
- Next
- End If
- If 选项1至3 = 2 and 是否重复 = False Then
- For 数量
- Do
- 返回值 = Int((90 - 65 + 1) * Rnd + 65)
- Loop Until InStr( 随机字母, chr(返回值)) < 1
- 随机字母 = 随机字母 & chr(返回值)
- Next
- ElseIf 选项1至3 = 2 and 是否重复 = True Then
- For 数量
- 返回值 = Int((90 - 65 + 1) * Rnd + 65)
- 随机字母 = 随机字母 & chr(返回值)
- Next
- End If
- If 选项1至3 = 3 and 是否重复 = False Then
- For 数量
- Do
- If rnd > 0.5 Then
- 返回值 = Int((90 - 65 + 1) * Rnd + 65)
- Else
- 返回值 = Int((122 - 97 + 1) * Rnd + 97)
- End If
- Loop Until InStr( 随机字母, chr(返回值)) < 1
- 随机字母 = 随机字母 & chr(返回值)
- Next
- ElseIf 选项1至3 = 3 and 是否重复 = True Then
- For 数量
- If rnd > 0.5 Then
- 返回值 = Int((90 - 65 + 1) * Rnd + 65)
- Else
- 返回值 = Int((122 - 97 + 1) * Rnd + 97)
- End If
- 随机字母 = 随机字母 & chr(返回值)
- Next
- End If
- End Function
复制代码 扩展之随机颜色:- TracePrint 随机颜色()
- Function 随机颜色()
- Randomize
- Dim 颜色文本库
- 颜色文本库="0123456789abcdef"
- For 6
- 随机颜色=随机颜色&Mid(颜色文本库,Int((Len(颜色文本库) - 1 + 1) * Rnd + 1),1)
- Next
- End Function
复制代码 扩展之随机中文:- TracePrint 随机简体汉字(5)
- Function 随机简体汉字(数量)
- Dim 返回值
- For 数量
- Randomize
- 返回值=返回值 & chr(-12160+int(126*rnd+1))
- Next
- 随机简体汉字 = 返回值
- End Function
复制代码 扩展之随机日文:- TracePrint 随机日文(5)
- Function 随机日文(数量)
- Dim 返回值
- Randomize
- For 数量
- 返回值=返回值&Chr(-(Int((2 * Rnd) + 1)*256+Int((83 * Rnd) + 1)+22796))
- Next
- 随机日文=返回值
- End Function
复制代码 扩展之随机日期:- TracePrint 随机日期("2022/06/01 12:00:00","2022/06/07 12:00:00")
- Function 随机日期(最小随机日期, 最大随机日期)
- Dim 随机日期_间隔天数, 年, 月, 日
- Randomize
- 随机日期_间隔天数 = DateDiff("d", 最小随机日期, 最大随机日期)
- If 随机日期_间隔天数 < 0 Then Exit Function
- Randomize
- 随机日期_天数 = Int((随机日期_间隔天数 + 1) * Rnd)
- 随机日期 = DateAdd("d", 随机日期_天数, 最小随机日期)
- 年=Year(随机日期): 月=Month(随机日期) :日=Day(随机日期)
- If Len(月) = 1 Then 月 = "0" & 月
- If Len(日) = 1 Then 日 = "0" & 日
- 随机日期 = 年&"/"&月&"/"&日
- End Function
复制代码 扩展之随机按键盘:- KeyPress 随机按键()/1, 1
- Function 随机按键()
- Randomize
- 随机按键 = cstr(int((90 - 55 + 1) * rnd + 55))
- End Function
复制代码 扩展之随机并附带小数:- Randomize
- TracePrint 3 + Round(Rnd, 4)
复制代码- Randomize
- A = FormatNumber((9 * rnd) + 16, 2)
- TracePrint A
复制代码 非常见写法[未使用Randomize、Rnd]:Do 数 = 随机数(1, 3) TracePrint 数 Delay 10 Loop Function 随机数(小, 大) Set objRandom = CreateObject("System.Random") 随机数 = objRandom.Next_2(小, 大+1) End Function
|