使用InputBox方法与使用InputBox函数的区别(如何用好几个inputbox函数)

大家好,我们今日继续讲解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过程将显示一个提示用户输入数字的对话框。

下面看一下测试结果:

代码窗口:

使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)

运行窗口:

使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)

当录入非数字时显示下面的窗口:

使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)

当录入的是数字时:

使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)使用InputBox方法与使用InputBox函数的区别(inputbox函数怎么用)

今日内容回向:

1 inputbox 函数和inputbox 方法有什么不同?

2 TYPE 的几个值有什么意义?