Application中的InputBox和VB中的InputBox的参数基本是相同,Prompt、Title和Default和VB中的InputBox参数是一一对应的。Left对应Xpos,Top对应Ypos.
函数格式语法
> Application.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID,Type)
备注:实参传递时:可以采用关键字参数传递,优势可以根据函数调用者需求选择性传递某些重要非必须的入参,格式:
arguments:=value
函数调用方法
Sub appInputBoxTest()
Rem 根据用户需要设置变量类型,用于下步承载交互函数的用户输入选择
Dim inputValue
Rem 参数实参传递 InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextID, Type)
prompt = "Prompt 入参 -> :在这里显示"
Title = "Title 入参 -> :在这里显示 "
Default_value = "Default 入参 -> :在这里显示 "
Left_value = "Left一般表示此显示框体和左边界的距离"
Top_value = "Top一般表示此显示框体和顶端边界的距离"
'Type = "Type: 是这里面的一个核心,不同的 type 代表需要选择的用户输入类型不同"
Rem 在type : = 8 的情况下,如果有set,表示结果为一个对象;选择单元格大于2返回为一个数组array,选择一个单元格一般返回为普通的string
inputValue = Application.InputBox(prompt:=prompt, Title:=Title, Default:=Default_value, Type:=8)
End Sub
函数运行过程
注意 type:= 8 的场景,在接受用户返回的类型值时候,需要根据需要设置返回值类型,否则可能会报错
备注:在
type : = 8
的情况下,如果有set,表示结果为一个对象
;选择单元格大于2返回为一个数组array
;选择一个单元格一般返回为普通的string
函数参数与框体内容的关系图
Type参数控制,如果想要设置多个数据类型,则可以将Type设置成1 + 2
,这种类型。其参数值对应的数据类型如下:
值 | 说明 |
---|---|
0 | 公式 |
1 | 数字 |
2 | 文本(字符串) |
4 | 逻辑值(True 或 False) |
8 | 单元格引用,作为一个 Range 对象 |
16 | 错误值,如 #N/A |
64 | 数值数组 |
对比 InputBox 和 Application.InputBox 的异同点
序号 | 不同点 | 说明 |
---|---|---|
1 | 参数有差异 | InputBox 中的 [XPos], [YPos] 对应 Application.InputBox 中的Left, Top, |
2 | 【确认】和【取消】 | InputBox 中的 如果我们点击【取消】,则会返回一个空值 字符串(String);Application.InputBox 如果点击【取消】,则就会返回False |
3 | type | 重要不同点:Application.InputBox 中的type 参数功能更强大 , InputBox 中只能输入数字和字符串,功能较弱 |
总结
最为常用的一种用户和程序交互的模式,熟练的掌握,将在编程中发挥出更强大的灵活性。