1、先来看看inputbox的函数原型:
Sting inputbox(提示文本,[对话框标题],[输入框文本],[窗口所在x轴],[窗口所在y轴],[帮助文件],[帮助图标主题])
[]内为可选参数
可见常用的参数只有3个,分别是提示文本、标题、输入框文本。
当我们可选参数为空时,即input(“”),如下,会继承父窗口的标题。
2、我们可以把它理解为:inputbox(提示文本,标题,输入框文本)
更方便记忆。
如果inputbox中有可选参数,这时必须要一个变量来获得inputbox函数的返回值。虽然这点很奇怪,但是确实如此。
比如,代码如下:
inputbox(“您今年几岁了?”,”输入年龄”,”18″)
3、编译器却提示我们缺少=号。
4、因为这时需要变量来接收inputbox的返回值。
此时把代码改为:
Dim tmp As String
tmp = inputbox(“您今年几岁了?”,”输入年龄”,”18″)
5、这时才能成功运行。
这点很重要,如果inputbox只有一个必选参数时,无需变量来接收返回值。当标题和输入框内的参数存在时,就必须要有一个变量来接收其返回值。
6、关于返回值。
点击取消时,inputbox会返回一个空字符串(即null)。
当点击确定时,inputbox会把输入框内的内容作为返回值。
有一点很值得注意,如果输入框内的内容为空,用户点击确定之后,那返回值同样是空字符串。我们没有办法判断用户点击的是确定还是取消。这其实是一个盲点,inputbox函数很致命的一个盲点。
我们可以这样测试:
msgbox( inputbox(“请输入一个数据”,”请输入”,”Hi”))
(即msgbox打印出inputbox的返回值)
7、运行之后,我们点击输入框的取消按钮。
结果是msgbox打印一个空字符串。
中断程序,重新运行,这次我们把输入框内容情况,然后点击确定,发现没有,msgbox也是打印一个空字符串。
这就意味着,如果我们要判断inputbox哪个按钮被点击,如果遇到用户输入空数据的话,我们根本无从判断。