e作者hink2003 (活在当下)
看板Visual_Basic
标题[VBA]关於乱数与VBA语法的问题
时间Sun Jun 26 20:04:04 2016
大家好,最近小弟开始学VBA
在练习一些题目时遇到2个问题
刚好发现此版,希望版上有大大能不吝赐教,谢谢!
第一个问题
因为用EXCEL2013版
用WorksheetFunction.RandBetween()
在EXCEL2003版不适用
於是用Int(Rnd() * (Max - Min + 1))改写後
发现乱数产生蛮固定的,大概每4~5个乱数就重新循环一次
但用WorksheetFunction.RandBetween
并无此问题!
不知版上大大有没有遇过这个问题?
以下为撷取一段原始码
Dim PlayerNum, Min As Integer, Max As Integer, GameTimes As Integer,
GameTimeSet As Integer ', FinalCode As Integer
If Min >= Max Then '输入错误时
MsgBox "请注意有无输入错误,再重新点选开始游戏", vbInformation
Exit Sub
Else '输入正确
FinalCode = WorksheetFunction.RandBetween(Min, Max)
'在EXCEL2003使用Int(Rnd() * (Max - Min + 1))
'MsgBox FinalCode
End If
第2个问题是":="与"="两者的差别?
原本写TYPE=1,发现会有问题!
於是上网查询之後,改成TYPE:=1,便能正常执行
EX:
PlayerNum = Application.InputBox("请猜测终极密码", "终极密码", "EXIT",
Type:=1 + 2)
--
※ 编辑: hink2003 (175.183.8.144), 06/26/2016 20:28:22
1F:→ MOONRAKER: :=只有用在指明引数名称的函数呼叫里面 其他地方没用 06/26 20:40
2F:→ MOONRAKER: 你以上的用法便是 这个场合也不可换成 = 06/26 20:41
3F:→ hink2003: 谢谢M大回覆!不知第一个问题有没有人遇过!? 06/27 19:45
5F:→ Catbert: 另外可用Application.Version来判断Excel版本 06/29 08:52
感谢C大分享,收获甚多!
※ 编辑: hink2003 (175.183.8.144), 07/02/2016 19:32:28