InputBox函数显示一个信息提示用户输入数据,这个对话框有两个按钮——“确定”和“取消”,当你点击确定时,InputBox函数返回用户输入在信息框里的信息;当你点击取消时,函数则返回空字符串(” ”)。InputBox函数的语法显示如下:
InputBox(prompt [, title] [, default] [, xpos] [, ypos] _ [, helpfile, context])
第一个参数,prompt,是你想要显示在对话框上的信息,你可以使用函数Chr(13)或Chr(10)将长文本打断为几行(参见本章中使用MsgBox函数的例子)。剩下所有的参数都是可选的。
第二个参数,title,让你改变对话框的默认标题,默认的标题是Mictosoft Excel。InputBox函数的第三个参数,default,让你在文本框里显示一个默认值,如果你忽略这个参数的话,显示的将是空白编辑框。
接下来的两个参数,xpos和ypos,允许你设置该对话框在屏幕上出现的位置,如果你忽略这两个参数,对话框就会出现了当前窗口的中央,xpos参数决定对话框在屏幕上从左起的水平位置,忽略它时,对话框显示在水平中央,而ypos参数决定对话框在屏幕从上而下的竖直位置,忽略它,对话框就在竖直大约三分之一的位置。xpos和ypos都使用一个叫twips的专门单位衡量,1twip大约等于0.0007英寸。最后两个参数,helpfile和context,和本专题ExcelVBA之的MsgBox函数相应的参数使用方法一样。
Sub AddTwoNums()
Dim myPrompt As String
Dim value1 As String
Const myTitle = "Enter data"
Dim mySum As Single
myPrompt = "Enter a number:"
value1 = InputBox(myPrompt, myTitle, 0)
mySum = value1 + 2
MsgBox mySum & " (" & value1 & " + 2)"
End Sub
value1 = InputBox(myPrompt, myTitle, 0)
变量value1的数据类型是字符串,你可以在上面指令的下面加上如下语句,快速地查看它的数据类型:
MsgBox varType(value1)
当VB运行上面的代码时,将显示信息-数字8,查看该数字代表字符串类型。
如果你试图在Excel的早期版本里(2000以前版本)运行AddTwoNums过程,当VB试图执行下列代码行时,你将得到类型不匹配的错误:
mysum = value1 + 2
使用内置函数CSng将储存于value1的字符串转换为一个单精度浮点类型的数字,可以避免类型不匹配错误,代码写成:
mysum = CSng(value1) + 2
下一行,mySum = value1 + 2,在用户输入的数据上加上2,并且将计算结果赋值给变量mySum。因为变量value1的数据类型时字符串,在使用它计算之前,VB在后台进行数据类型的转换,VB知道转换的需要。没有它,两种不兼容的数据类型(文本和数字)将会产生类型不匹配错误。程序最后是一个MsgBox函数,显示计算的结果已经给用户显示总数是如何组成的。