VBS中InputBox函式的返回值使用技巧

2022-09-21 08:48:11 字數 1556 閱讀 2342

如果使用者單擊確定或按下 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...