InputBox函数(VBA)
InputBox
函数可以生成一个对话框,提示用户在该对话框中输入正文或按下按钮,并返回用户输入的内容。
InputBox
函数有两种类型,一种是VB中的函数,一种是Application对象中的函数,两种类型有一些差异,但总体差异不大。
1、VB中的InputBox
语法格式
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
参数意义
参数 | 是否必填 | 解释 |
---|---|---|
Prompt | 必填 | 对话框消息出现的字符,最大长度大约是 1024 个字符。 |
Title | 非必填 | 对话框标题栏显示的字符 |
Default | 非必填 | 显示文本框中的字符串表达式,在没有其它输入时作为缺省值。 |
Xpos | 非必填 | 数值表达式,成对出现,指定对话框的左边与屏幕左边的水平距离。如果省略,则对话框在水平方向居中显示。 |
Ypos | 非必填 | 数值表达式,成对出现,指定对话框的上边与屏幕上边的距离。如果省略,则对话框被放置在屏幕垂直方向距下边大约三分之一的位置 |
Helpfile | 非必填 | 字符串表达式,识别帮助文件,用该文件为对话框提供上下文相关的帮助。如果已提供 helpfile,则也必须提供context |
Context | 非必填 | 数值表达式,由帮助文件的作者指定给某个帮助主题的帮助上下文编号。如果已提供context,则也必须要提供 helpfile |
估计大家看了上面的描述后,还是会云里雾里的,不知道各个参数到底对应了哪些地方,下面为大家举一个例子,这样会更加的具象化一点。
相关案例
Sub myinput()
Dim Message As String, Title As String, Default As String, MyValue As String
'这是上一篇文章提到的定义变量类型的语句
'下面是简单的参数赋值
Message = "这里是:Prompt"
Title = "这里是:Title"
Default = "这里是:Default"
'下面调用inputbo函数
MyValue = InputBox(Message, Title, Default)
'注意上面的变量都是和InputBox函数的参数一一对应的,如遇到不赋值的情况,需要中间加逗号
Debug.Print MyValue
End Sub
运行上面代码,将会弹出下面的提示。针对各个参数的位置已用红色方框和箭头表示出来。以方便大家查阅。
从上面弹出的对话框可以看出,对话框右边有【确认】和【取消】两个按钮。如果我们点击【确认】,则MyValue
的值就会被赋值为我们输入的内容。如果我们点击【取消】,则MyValue
的值就会返回一个空值 。还有,InputBox函数返回的是一个字符串(String).
2、Application中的InputBox
语法格式
InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
参数意义
Application中的InputBox
和VB中的InputBox
的参数基本是相同,Prompt
、Title
和Default
和VB中的InputBox
参数是一一对应的。Left
对应Xpos
,Top
对应Ypos
.
不过与VB最大的不同是,后面多了一个Type
参数。上面我们提到VB的InputBox
函数只能反馈字符串(String)格式的内容,而Application中的则能返回多种类型的数据格式。并且数据格式的类型,可以通过Type
参数控制。其参数值对应的数据类型如下:
值 | 含义 |
---|---|
0 | 公式 |
1 | 数字 |
2 | 文本(字符串) |
4 | 逻辑值(True 或 False) |
8 | 单元格引用,作为一个 Range 对象 |
16 | 错误值,如 #N/A |
64 | 数值数组 |
如果想要设置多个数据类型,则可以将Type
设置成1 + 2,这种类型。
相关案例
Sub myapinput()
Dim Message As String, Title As String, Default As String, MyValue As String
'这是上一篇文章提到的定义变量类型的语句
'下面是简单的参数赋值
Message = "这里是:Prompt"
Title = "这里是:Title"
Default = "这里是:Default"
'下面调用inputbo函数
MyValue = Application.InputBox(Message, Title, Default, , , , , 1)
'注意上面的变量都是和InputBox函数的参数一一对应的,如遇到不赋值的情况,需要中间加逗号
Debug.Print MyValue
End Sub
这个案例的代码和上个是一样的,只是将InputBox
函数修改为了Application.InputBox
的方法。运行上面代码后,显示如下:
运行结果与上面的基本相同。从上面弹出的对话框可以看出,对话框下边有【确认】和【取消】两个按钮。如果我们点击【确认】,则MyValue
的值就会被赋值为我们输入的内容。如果我们点击【取消】,则MyValue
的值就会返回False
,而VB中这个返回是空,这也是两个函数的不同点之一。
在上面代码中,我们设置了Type=1
,也就是说,输入的内容要为数字,如果不是数字会弹出什么呢?
可以看到,系统自动进行了校验,并提示了我们错误。
以上,就是VBA的InputBox
函数的一些内容,期待下期再见,拜了个拜。
—End—
参考资料
《Excel VBA编程实战宝典》