看板 Visual_Basic 關於我們 聯絡資訊
大家好,最近小弟開始學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
MOONRAKER: :=只有用在指明引數名稱的函數呼叫裡面 其他地方沒用 06/26 20:40
MOONRAKER: 你以上的用法便是 這個場合也不可換成 = 06/26 20:41
hink2003: 謝謝M大回覆!不知第一個問題有沒有人遇過!? 06/27 19:45
Catbert: 呼叫Rnd前要加入Randomize MSDN:https://goo.gl/sGDe54 06/29 08:49
Catbert: 另外可用Application.Version來判斷Excel版本 06/29 08:52
感謝C大分享,收穫甚多! ※ 編輯: hink2003 (175.183.8.144), 07/02/2016 19:32:28