VB弹出输入框InputBox函数详解

MsgBox InputBox(“请填写要打开的URL地址”, “请输入网址:”, “http://www.baidu.com/”)

一、InputBox函数

1、作用
    显示一个输入框,并提示用户在文本框中输入文本、数字或选中某个单元格区域,当按下确定按钮后返回包含文本框内容的字符串。

2、语法
    InputBox(Prompt[,Title][,Default][,Xpos][,Ypos][,Helpfile,Context])

参数说明:
    (1)Prompt,必需的参数,作为输入框中提示信息出现的字符串,其最大长度约为1024个字符,由所使用字符的宽度决定。如果Prompt包含多个行,则可在各行之间用回车符(Chr(13))、换行符(Chr(10))或回车换行符的组合(Chr(13)&Chr(10))来分隔。
    (2)Title,可选的参数,作为输入框标题栏中的字符串。若省略该参数,则在标题栏中显示应用程序名称。
    (3)Default,可选的参数,作为输入框中默认的字符串,在没有其它输入时作为缺省值。若省略该参数,则文本框为空。
    (4)Xpos,可选的参数,为数值,成对出现,指定输入框的左边与屏幕左边的水平距离。若省略该参数,则输入框在水平方向居中。
    (5)Ypos,可选的参数,为数值,成对出现,指定输入框的上边与屏幕上边的距离。若省略该参数,则输入框在屏幕垂直方向距下边约三分之一的位置。
    (6)Helpfile,可选的参数,为字符串,表示帮助文件,用该文件为输入框提供上下文相关的帮助。若有Helpfile,则必须有Context。
    (7)Context,可选的参数,为数值,帮助文件中某帮助主题的上下文编号。若有Context,则必须有Helpfile。

3、相关说明
    (1)如果同时提供了Helpfile与Context参数,可以按F1键来查看与Context相应的帮助主题,Excel通常会在输入框中自动添加一个帮助(Help)按钮。
    (2)如果单击确定(OK)或按下ENTER键,则InputBox函数返回文本框中的内容;如果单击取消(Cancel),则此函数返回一个长度为零的字符串(“”)。
    (3)如果要输入多个参数并省略中间的某些参数,则必须在相应位置加入逗号分界符。
    (4)InputBox函数返回的是一个字符串,若需要得到数值,则需要使用Val函数将字符串转换为一个值。


二、InputBox方法

1、作用
    显示一个接收用户输入的对话框,并返回此对话框中输入的信息。运用InputBox方法可以指定需要返回的数据类型,可通过在工作表中拖放指定工作表的单元格区域,并能自动执行输入有效性验证。

2、语法
    Object.InputBox(Prompt,Title,Default,Left,Top,HelpFile,HelpContextID,Type)

参数说明:
    (1)Prompt,必需的参数,为string型,表示在输入框中的文本,可为字符串、数字、日期或一个布尔值(Excel自动将值强制转换为string型)。
    (2)Title,可选的参数,为Variant型,输入框窗口的标题。若省略此参数,将使用默认的标题。
    (3)Default,可选的参数,为Variant型,指定在用户没有输入内容时文本框的默认值。若省略此参数,文本框中的内容为空。该值可为一个Range对象。
    (4)Left,可选的参数,为Variant型。指定输入框窗口相对于屏幕左上角的x坐标。
    (5)Top,可选的参数,为Variant型。指定输入框窗口相对于屏幕左上角的y坐标。
    (6)HelpFile,可选的参数,为Variant型。表示此输入框使用的帮助文件名。若存在HelpFile和HelpContextID参数,则输入框中将出现一个帮助按钮。
    (7)HelpContextID,可选的参数,为Variant型。表示帮助主题。
    (8)Type,可选的参数,为Variant型,指定返回数据的类型。若省略此参数,输入框将返回文本。数据类型可以是下表中的其中一个或其中几个的和。若使用适当代码的和,则返回多种数据类型。若要显示一个可以接受文本或数字的输入框,则将Type设置为3(即1和2之和,或者数字加上文本);若Type设置为8,那么可以输入一个单元格或单元格区域,或者用鼠标在工作表中的选择某个单元格区域。

3、相关说明
    (1)使用InputBox可以显示一个简单的对话框,以便输入宏所需要的的信息。此对话框有一个“确定”按钮和一个“取消”按钮。如果选取了“确定”按钮,则InputBox将返回对话框中输入的值。如果单击“取消”按钮,则InputBox的值为False。
    (2)如果Type为0,InputBox将以文本格式返回输入的公式。例如,“=2*PI()/360”。如果公式中有引用,将以A1-样式引用返回(用ConvertFormula方法转换引用样式)。
    (3)如果Type为8,InputBox将返回一个Range对象。必须用Set语句将结果指定给一个Range对象,如下例所示。
        Set myRange = Application.InputBox(prompt := “Sample”, type := 8)
        如果不使用Set语句,此变量将被设为这个区域的值,而不是Range这个对象本身。
    (4)如果使用InputBox方法要求用户输入公式,则必须使用FormulaLocal属性来将此公式指定给一个Range对象。
    (5)InputBox方法与InputBox函数的区别在于:InputBox方法可以对用户的输入自动执行输入有效性验证,也可用于Excel对象、误差值、和公式的输入。需要注意的是Application.InputBox调用的是InputBox方法,不带对象识别符的InputBox调用的是InputBox函数。

4、示例
(1)提示用户输入数字:
    myNum = Application.InputBox(“Enter a number”)

(2)提示用户在Sheet1中选取一个单元格,使用Type参数返回有效的单元格引用(一个Range对象)。
    Worksheets(“Sheet1”).Activate
    Set myCell = Application.InputBox(prompt:=”Select a cell”, Type:=8)