InputBox函数(VBA)

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的参数基本是相同,PromptTitleDefault和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编程实战宝典》

  • 23
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值