[VBA ] Do while 迴圈跳不出來

作者: cloudwithsky (寂寞使我更優雅)   2017-01-21 12:27:23
各位好,魯妹是VB自學初心者
本週在複習Do while 時 發現寫出來的迴圈永不不止息阿阿阿阿
魯妹本來的預想是希望可以藉由do while檢查inputbox 的數值是否可以正確執行
若無法,則顯示msgbox提醒
所以就有了下列寫法,
i = InputBox("Start Value")
If i = "" Then End
Do While i <> ""
If i = intger Then Exit Do
Select Case InputBox("Start Value")
Case IsNumeric(i) = False: MsgBox "請數入數字": i = InputBox("Start
Value")
Case i <= 0: MsgBox "數值不得為負": i = InputBox("Start Value")
End Select
Loop
j = InputBox("End Value")
If j = "" Then End
Do While j <> ""
If j = intger Then Exit Do
Select Case InputBox("End Value")
Case IsNumeric(j) = False: MsgBox "請數入數字": j = InputBox("End Value")
Case j <= 0: MsgBox "數值不得為負": j = InputBox("End Value")
If i = j Then j = j + 1
End Select
Loop
還請好心的大大提點,到底是哪裡出了問題阿阿
魯妹先謝謝大家了m(_ _)m
作者: MOONRAKER (㊣牛鶴鰻毛人)   2017-01-21 15:06:00
你寫if j=intger 是打算檢查什麼 判斷整數不是這樣寫select case拆掉改成if...else if...end ifVB的select功能混亂 新手使用百害無一利
作者: harryfly (波特)   2017-01-23 05:34:00
do while應該是用在 不論如何都會先執行一次敘述才去執行判斷式 true則繼續執行敘述 false則跳出如 Do ...[敘述] While(判斷式) Loop想判斷是否整數 VB有函數可以用 可以google一下select case 後面是放運算式or變數關於InputBox的用法 我認為你應該再多閱讀一下另外我也認為就先用if else就好 邏輯上較不會出錯以上 一個不太算新手的新手的淺見 有誤請告知對不起 原PO的InputBox用法是正確的 但用的地方我認為不恰當剛剛看了一下 我好像以為你的do while 用錯了一不小心 忘了VB跟C Do while的寫法不一樣好丟臉QQ 可以幫我刪推文嗎 當我沒推過文......
作者: niklee29 (就是愛喝茶)   2017-01-23 11:59:00
當作觀念來看不用刪啊,好歹也打這麼行...XD
作者: cloudwithsky (寂寞使我更優雅)   2017-01-23 14:07:00
哈哈~害我疑惑一下跑去翻書...然後才看到最後一行XD感謝大德們,立馬試試看先

Links booklink

Contact Us: admin [ a t ] ucptt.com