在上一篇文章Excel/VBA编程用户交互函数(一)——msgbox()函数中,小伙伴们了解了消息弹窗的知识,今天我们来学习一下Excel/VBA编程的第二个用户交互函数Inputbox()函数及Inputbox方法。
Inputbox函数和Inputbox方法的作用
Inputbox函数的作用是打开一个输入框作为输入数据的界面,并提示用户在文本框中输入文本、数字或选中某个单元格区域等相关信息,当按下确定按钮后返回包含文本框内容的字符串给VBA程序(计算器),从而实现人机交互。
Inputbox方法的作用和Inputbox函数类似,只是其功能更加灵活强大,不但可以返回字符串还可以返回其它的数据类型。
Inputbox函数和Inputbox方法的语法格式
Inputbox函数的语法格式如下:
InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
Inputbox方法的语法格式如下:
application.inputbox(prompt,title,default,left,top,helpfile,helpcontextid,type)
Inputbox函数和Inputbox方法的参数说明
相信细心的小伙伴们已经发现了Inputbox函数和方法的参数基本一样,因此为了方便小伙伴们比较和记忆,就放在一起进行说明,具体如下:
其中Inputbox方法增加了Type参数来选择返回值类型,具体说明如下:
需要大家注意的是:Inputbox函数如果用户不输入数据,直接点击 确定 按钮,则会返回一个空字符串,而无论是否输入数据,点击 取消 按钮,则也会返回一个空字符串,VBA程序在此时是无法判断用户是点击了确定按钮还是取消按钮。
Inputbox函数和Inputbox方法的实用举例
现通过一个实例来看inputbox函数和Inputbox方法中的参数会在对话框的什么位置,从而方便小伙伴们设置对话框的相关参数,同时也让小伙伴们具体了解一下Inputbox函数和Inputbox方法的应用:
首先来看inputbox函数:
上述Inputbox 函数的VBA代码如下:
Sub Function_inputbox()
Dim str1 As String
Dim str_Prompt, str_Title, str_Default, str_HelpFile As String
Dim Xpos, Ypos, Context As Integer
str_Prompt = "这是Prompt文本的位置"
str_Title = "这是Title文本的位置(Inputbox函数)"
str_Default = "这是Default文本的位置"
Xpos = 2500
Ypos = 3000
str_HelpFile = ""
Context = 100
str1 = inputbox(str_Prompt, str_Title, str_Default, Xpos, Ypos, str_HelpFile, Context)
End Sub
Inputbox方法的弹窗如下:
Inputbox方法的VBA实现代码如下,请注意和Inputbox函数的相同点和不同点:
Sub Method_inputbox()
Dim a As Range
On Error Resume Next
Dim str_Prompt, str_Title, str_Default, str_HelpFile As String
Dim Xpos, Ypos, Context As Integer
str_Prompt = "这是Prompt文本的位置"
str_Title = "这是Title文本的位置(Inputbox方法)"
str_Default = "这是Default文本的位置"
Xpos = 1500
Ypos = 2000
Set a = Application.inputbox(Prompt:=str_Prompt, Title:=str_Title, Default:=str_Default, Type:=8)
End Sub
小伙伴们一定要注意的是上述Inputbox方法是选取单元格区域,如果点击取消按钮的话,返回值为FALSE,这样Set 对象语句就会报错:
因此要记得增加On Error Resume Next语句来屏蔽此错误。
更多精彩内容,请 关注 吉祥编程 公众号。