如果使用者單擊確定或按下 enter,則 inputbox 函式返回文字框中的內容。如果使用者單擊取消,則函式返回乙個零長度字串 ("")。
關於inputbox 疑惑
————————————————————————————
如果使用者單擊確定或按下 程式設計客棧enter,則 inputbox 函式返回文字框中的內容。如果使用者單擊取消,則函式返回乙個零長度字串 ("")。
————————————————————————————
那如何區分使用者是沒有輸入字元按了「確定」
還是按了「取消」呢?
有些時候想傳入空字元的,而有些時候想取消輸入
按照參考手冊的說法,無論是使用者沒有輸入字元按了「確定」,還是按了「取消」,函式的返回值都是零長度字串""。這樣看來,似乎沒有辦法區分使用者是沒有輸入字元按了「確定」,還是按了「取消」。
我也以為這是無法實現的,但是下面卻有人給出了解決方案:
複製** **如下:
str=inputbox("???")
if str="wffheu" then msgbox("a")
else if str=false then "您按。。。取消"
end if
雖然有語法錯誤,但是用jrnpgkfalse的確可以區分出「確定」和「取消」。為什麼呢?因為如果使用者單擊取程式設計客棧消,inputbox返回的並不是乙個零長度的字串"",而是empty
用乙個簡單的程式就可以測試出來:
複製** **如下:
str = inputbox("enter a string")
msgbox typename(str)
當沒有輸入字元直接按「確定」時輸出string,而按「取消」時輸出empty。於是,似乎可以這樣來判斷到底是「確定」還是「取消」:
複製** **如下:
str = inputbox("enter a string")
if str = empty then
msgbox "cancel"
else
msgbox "ok"
end if
只可惜上面的**是錯的,無論按下「確定」還是「取消」,都會輸出cancel。因為無論是"" = empty(比較前empty會隱式轉化成"")還是empty = empty都會返回真,正確的方法是用isempty來判斷:
複製** **如下:
str = inputbox("enter a string")
if isempty(str) then
msgbox "cancel"
else
msgbox "ok"
end if
再說說為什麼可以用false來判斷,"" = false返回假(比較前fjrnpgkalse會隱式轉換成字串"false"),而empty = false返回真,於是可以判斷。
看來文件寫的也不一定是對的,盡信文件,不如無文件。
原文:
本文標題: vbs中inputbox函式的返回值使用技巧
本文位址: /ruanjian/vb/81307.html
VBS教程 函式 InputBox 函式
在對話方塊中顯示提示,等待使用者輸入文字或單擊按鈕,並返回文字框內容。inputbox prompt title default xpos ypos helpfile,context 引數prompt 字串表示式,作為訊息顯示在對話方塊中。prompt的最大長度大約是 1024 個字元,這取決於所使...
InputBox函式用法小結
inputbox函式和msgbox函式很常用,特別是在與使用者進行簡單的互動時經常用到。一 inputbox函式 1 作用 顯示乙個輸入框,並提示使用者在文字框中輸入文字 數字或選中某個單元格區域,當按下確定按鈕後返回包含文字框內容的字串。2 語法 inputbox prompt title def...
InputBox函式用法小結
inputbox函式和msgbox函式很常用,特別是在與使用者進行簡單的互動時經常用到。一 inputbox函式 1 作用 顯示乙個輸入框,並提示使用者在文字框中輸入文字 數字或選中某個單元格區域,當按下確定按鈕後返回包含文字框內容的字串。2 語法 inputbox prompt title def...