用了VB一段時間,很久沒碰InputBox了,突然臨時要用卻忘記InputBox要如何擋掉一些不希望出現的輸入了...我要InputBox只認"數值"其他如:a、10a、國字、10國字...的情況皆要擋掉,要怎麼寫呢?謝謝大家了...
2006-02-27 17:02:53 · 2 個解答 · 發問者 ? 5 in 電腦與網際網路 ➔ 程式設計
都不錯,投票喔~
2006-03-03 17:43:07 · update #1
如果您只是要在輸入完後再去判斷輸入值是否為數字的話用
Private Sub Command1_Click()
Dim S As String
Do
S = InputBox("輸入數字")
Loop Until IsNumeric(S)
End Sub
就可以辦到;若要在Inputbox輸入的當下就限制KeyIn必須是數字時就要動用到API了^^
2006-03-03 12:36:33 補充:
其實要判斷InputBox是按下確定還是按下取消是有方法的Private Sub Command1_Click()Dim S As StringDo S = InputBox("請輸入數字") If StrPtr(S) = 0 Then MsgBox "你按下取消鍵": Exit Sub Else MsgBox "你按下確定鍵,輸入值為: " & S End IfLoop Until IsNumeric(S)End Sub
2006-02-27 02:11:18 · answer #1 · answered by W.J.S. 7 · 0⤊ 0⤋
VB 的 InputBox 這個東西實在是不知道該怎麼說它才好,
不管是按取消或是什麼都不輸入就按[確定]收到的值都是空字串,
所以為了避免按取消仍無法離開 Do..Loop 迴圈,
建議在迴圈中加上判斷傳回的值是空字串時就跳離迴圈的程式碼,
另外 IsNumeric 這個函式判斷數值的例外狀況請參閱下列連結內容。
http://tw.knowledge.yahoo.com/question/?qid=1306022705029
Ex.
Private Sub Command1_Click()
Dim InputResult As String
Do
InputResult = InputBox("請輸入數字," & vbCrLf & "不輸入任何數字 或是 按[取消] 就離開", "輸入數值", "")
If InputResult = "" Then Exit Sub
Loop Until (IsNumeric(InputResult) And InStr(InputResult, ".") = 0 And InStr(InputResult, ",") = 0 And InStr(InputResult, "E") = 0)
MsgBox "輸入的是數字:" & InputResult, vbInformation, "提示訊息"
End Sub
2006-02-27 12:53:51 · answer #2 · answered by 憂鬱到不行 2 · 0⤊ 0⤋