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