大家好,我们今日继续讲解VBA代码,今日讲解的是第44讲,在Excel中输入简单的数据可以使用InputBox函数显示的对话框,但是如果输入的数据类型不匹配时,过程运行时会产生意外错误。为了避免此类情况发生,可以使用另一种获得用户输入的方式——InputBox方法。
InputBox方法显示一个接收用户输入的对话框,返回此对话框中输入的信息,语法如下:
expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
参数
a) expression是必需的,返回一个Application对象。
b) Prompt是必需的,作为对话框消息显示的字符串表达式。
c) Title是可选的,作为显示在对话框标题栏中的字符串表达式。如果省略Title参数,将使用默认的标题。
d) Default是可选的,在对话框显示时出现在文本框中的初始值。如果省略Default参数,则文本框为空。
e) Left是可选的,指定对话框相对于屏幕左上角的 x 坐标。
Top是可选的,指定对话框相对于屏幕左上角的 y 坐标。
f) HelpFile和参数HelpContextId是可选的,为对话框提供上下文相关的帮助和编号,如果提供了其中一个参数,则必须提供另一个参数,两者缺一不可。
g) Type是可选的,指定返回的数据类型。如果省略Type参数,对话框将返回文本。
注意点:第一: InputBox方法的语法和InputBox函数的语法相似,最大的区别在于最后一个参数——Type。通过Type参数可以指定返回值的数据类型:0表示 一个公式;1表示一个数字;2表示文本(字符串);4表示一个逻辑值,例如true或false;8 表示一个单元格引用;16表示一个错误值;64表示一个值的数组
第二:这些数值可以相加使用,如果希望返回数字和文本,可以将Type参数设置为1 2。
第三:InputBox方法与InputBox函数相比,优点是内置的出错处理;InputBox方法和InputBox函数的另一个区别是,当用户单击"取消"按纽时返回False而不是长度为零的字符串。
第四:在VBA代码中,Application.InputBox 调用的是InputBox方法,不带对象识别符的InputBox调用的是InputBox 函数。
下面我们用一个实例对上面内容进行讲解:使用InputBox方法输入数据时可以指定数据的类型,如下面的代码所示。
Sub MydInput()
Dim dInput As Double
Dim r As Integer
r = Sheet1.Range("A65536").End(xlUp).Row
dInput = Application.InputBox(Prompt:="请输入必要的数字:", Type:=1)
If dInput <> False Then
Sheet1.Cells(r 1, 1).Value = dInput
Else
MsgBox "你已取消了输入!"
End If
End Sub
代码解析:
MydInput过程使用InputBox方法显示一个提示用户输入数字的对话框。
在第5行代码中将Type参数值设置为1,这意味着对话框只能输入数值。
第6行到第10行代码,如果用户单击对话框的"确定"按钮,将用户输入的数字写入工作表的A列单元格。如果用户单击对话框的"取消"按钮,则显示一条提示消息。运行MydInput过程将显示一个提示用户输入数字的对话框。
下面看一下测试结果:
代码窗口:
运行窗口:
当录入非数字时显示下面的窗口:
当录入的是数字时:
今日内容回向:
1 inputbox 函数和inputbox 方法有什么不同?
2 TYPE 的几个值有什么意义?