让我们来深入探讨一个重要的话题:如何使用 InputBox 方法来获取用户输入信息。这个方法可以创建一个简单的对话框,允许用户输入数据并获取用户输入。
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,可选,指定返回的数据类型。如果忽略该参数,则对话框返回
文本。下图 8.2 所示的表格中,列出了可以传递到参数 Type 中的值,可以
是一个值或者多个值之和(即任意组合)。例如,如果想要输入框接受文本
和数字,则可以设置参数 Type 为 1 2。
值 | 说明 |
0 | 公式 |
1 | 数字 |
2 | 文本(字符串) |
4 | 逻辑值(True或False) |
8 | 单元格引用,作为Range对象 |
16 | 错误值,例如#I/A |
64 | 一组值 |
使用InputBox方法,我们可以展示一个简单的对话框,接纳用户输入的信息,并在代码中应用这些信息。如上图8.1所示,这个对话框包含“确定”和“取消”两个按钮。当用户点击“确定”时,InputBox方法返回对话框中输入的值;当用户点击“取消”时,则返回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:获取用户输入的数据
下面的代码显示一个对话框,要求用户输入文本,然后获取并显示用户输入的文本。
结果: