使用 Application.InputBox
方法
Excel 的 Application.InputBox
方法与 VBA 中的 InputBox()
函数不同,因为 VBA 会弹出一个模态对话框,并且始终返回一个文本值,而 Excel 的 Application.InputBox
会弹出一个半模态对话框,允许用户在工作簿中选择单元格;它还可以验证用户输入,并能够捕获 Excel 对象错误和公式值。Application.InputBox
方法的语法如下:
Application.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
在这段代码中:
- Prompt:这是必填项;它是一个字符串,表示在对话框中显示的消息。
- Title:这是可选项;它是一个字符串,表示对话框的标题。
- Default:这是可选项;它指定了当对话框首次显示时文本框中的默认值。如果省略,则文本框为空(也可以定义为一个 Range 对象)。
- Left:这是可选项;它指定对话框相对于屏幕左上角的 x 位置,单位为磅(points)。
- Top:这是可选项;它指定对话框相对于屏幕左上角的 y 位置,单位为磅(points)。
- HelpFile:这是可选项;它是与输入框关联的帮助文件的名称。如果提供了
HelpFile
和HelpContextID
参数,帮助按钮将出现在对话框中。 - HelpContextID:这是可选项;它是帮助文件中帮助主题的上下文 ID 号。
- Type:这是可选项;它指定返回的数据类型。如果省略该参数,则对话框返回文本。
表:允许传递给 Application.InputBox
方法的 Type 参数值和返回值
Type 值 | 返回值 |
---|---|
0 | 公式(以 = 开头的字符串) |
1 | 数字 |
2 | 文本(默认) |
4 | 逻辑值(True 或 False) |
8 | Range 对象 |
16 | 错误对象(Error) |
64 | 数组值 |
在表中,”返回值” 列表示,除了在用户点击取消按钮时返回 False 外,Application.InputBox
方法还可以返回不同类型的值、数组,甚至对象指针(例如 Range 或 Error)。
你可以在 VBA 立即窗口中尝试 Application.InputBox()
方法,键入一个至少包含 Prompt
参数的命令行(默认情况下使用 Type = Text
):
? Application.InputBox("选择一个单元格")
通过点击任何单元格的值,Application.InputBox
方法会在立即窗口中返回该单元格的值。