作者cloudwithsky (寂寞使我更優雅)
看板Visual_Basic
標題[VBA ] Do while 迴圈跳不出來
時間Sat Jan 21 12:27:23 2017
各位好,魯妹是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
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 114.40.23.201
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Visual_Basic/M.1484972847.A.B0C.html
1F:→ MOONRAKER: 你寫if j=intger 是打算檢查什麼 判斷整數不是這樣寫 01/21 15:06
2F:→ MOONRAKER: select case拆掉改成if...else if...end if 01/21 15:08
3F:→ MOONRAKER: VB的select功能混亂 新手使用百害無一利 01/21 15:08
4F:推 harryfly: do while應該是用在 不論如何都會先執行一次敘述 01/23 05:34
5F:→ harryfly: 才去執行判斷式 true則繼續執行敘述 false則跳出 01/23 05:34
6F:→ harryfly: 如 Do ...[敘述] While(判斷式) Loop 01/23 05:36
7F:→ harryfly: 想判斷是否整數 VB有函數可以用 可以google一下 01/23 05:39
8F:→ harryfly: select case 後面是放運算式or變數 01/23 05:40
9F:→ harryfly: 關於InputBox的用法 我認為你應該再多閱讀一下 01/23 05:41
10F:→ harryfly: 另外我也認為就先用if else就好 邏輯上較不會出錯 01/23 05:45
11F:→ harryfly: 以上 一個不太算新手的新手的淺見 有誤請告知 01/23 05:46
12F:→ harryfly: 對不起 原PO的InputBox用法是正確的 但用的地方我認為不 01/23 05:48
13F:→ harryfly: 恰當 01/23 05:48
14F:推 harryfly: 剛剛看了一下 我好像以為你的do while 用錯了 01/23 05:52
15F:→ harryfly: 一不小心 忘了VB跟C Do while的寫法不一樣 01/23 05:54
16F:→ harryfly: 好丟臉QQ 可以幫我刪推文嗎 當我沒推過文...... 01/23 05:54
17F:→ niklee29: 當作觀念來看不用刪啊,好歹也打這麼行...XD 01/23 11:59
18F:→ cloudwithsky: 哈哈~害我疑惑一下跑去翻書...然後才看到最後一行XD 01/23 14:07
19F:→ cloudwithsky: 感謝大德們,立馬試試看先 01/23 14:07