清空input文本框的值(InputBox函数语法参数)

通常,我们会使用用户窗体来设计与用户交互的界面,实现用户与程序的连接。其实,Excel VBA已经为我们提供了简单方便的交互方式。在《Excel VBA解读20:用户交互初体验——MsgBox函数》中,我们介绍了VBA的内置函数:MsgBox函数。MsgBox函数会让Excel弹出一个消息框,为用户提供相关的信息。

本文主要讲解用于获取用户输入信息的InputBox方法。如下图1所示的对话框,允许用户输入数据并获取用户输入。

清空input文本框的值(InputBox函数语法参数)

图1

InputBox方法的语法:

Application.InputBox(Prompt,[Title],[Default],[Left],[Top],[HelpFile],[HelpContextID],[Type])

其中:

参数Prompt,必需,用于指定显示在对话框中提示用户输入的文本。

参数Title,可选,提供显示在对话框标题栏的文本。如果忽略,则默认为“输入”。

参数Default,可选,当对话框初始化时,指定对话框中显示在文本输入框中的值。如果忽略,则文本框中为空。

参数Left,可选,指定对话框相对于屏幕左上角的x位置,以磅为单位。

参数Top,可选,指定对话框相对于屏幕左上解的y位置,以磅为单位。

参数HelpFile,可选,为对话框提供帮助文件的名字。如果参数HelpFile和参数HelpContextID都被设置,则对话框中显示帮助按钮。

参数HelpContextID,可选,在参数HelpFile中的帮助主题的上下文ID编号。

参数Type,可选,指定返回的数据类型。如果忽略该参数,则对话框返回文本。下图2所示的表格中,列出了可以传递到参数Type中的值,可以是一个值或者多个值之和(即任意组合)。例如,如果想要输入框接受文本和数字,则可以设置参数Type为1 2。

图2

使用InputBox方法,可以是显示简单的对话框,接受用户输入的信息并可以在代码中使用这些信息。如上图1所示,对话框有“确定”和“取消”两个按钮。如果单击“确定”按钮,那么Input方法返回在对话框中输入的值;如果单击“取消”按钮,则返回False。

如果参数Type设置为0,那么InputBox方法以文本形式返回公式,例如“=2 3”。如果在公式中有任何的引用,那么作为A1样式的引用返回。

如果参数Type设置为8,那么InputBox方法返回一个Range对象。此时,必须使用Set语句来将对话框的结果赋值给一个Range对象变量,否则,变量会被设置为单元格区域中的值而不是Range对象。

如果使用InputBox方法要求用户输入公式,那么必须使用FormulaLocal属性将公式赋值给Range对象。

VBA还提供了一个与InputBox方法同名的内置函数:InputBox函数,只能在对话框中输入数据,如果用户什么也没有输入,则返回零长度的字符串;如果用户单击“取消”按钮,同样返回一个零长度字符串。注意,Application.InputBox调用InputBox方法,而单独的InputBox则是InputBox函数。总的来说,InputBox方法的功能更加强大。

示例1:获取用户输入的数据

下面的代码显示一个对话框,要求用户输入文本,然后获取并显示用户输入的文本。

Sub testInputBox()

Dim varInput As Variant

varInput = Application.InputBox( _

Prompt:=”请输入要查找的文本:”, _

Title:=”查找数据”)

MsgBox “你要查找的文本是: ” & vbCrLf &varInput

End Sub

运行代码后的效果如图3所示。

图3

示例2:求所选择的单元格区域中的数值之积

下面的代码来自VBA帮助。使用对话框要求用户选择包含3个单元格的单元格区域,并将其传递给自定义函数MyFunction,将单元格区域中的3个值相乘并返回结果。

Sub cmb_value_select()

Dim rng As Range

Set rng = Application.InputBox( _

Prompt:=”选择单元格区域:”, _

Type:=8)

If rng.Cells.Count <> 3 Then

MsgBox “请选择3个单元格!”

Exit Sub

End If

‘调用MyFunction函数求值

‘并在当前单元格中放置结果

ActiveCell.Value = MyFunction(rng)

End Sub

Function MyFunction(rng As Range)As Double

MyFunction = rng(1) * rng(2) * rng(3)

End Function

欢迎在下面留言,完善本文内容,让更多的人学到更完美的知识。

欢迎投稿:xhdsxfjy@163.com,与大家共享精彩知识。

发表评论

登录后才能评论