VBA入门到进阶常用知识代码总结33

第33集 InputBox函数方法应用
146、 InputBox函数
语法:InputBox(Prompt[, Title] [, Default] [, XPos, YPos] [, Helpfile, Context])

147、 Application的InputBox方法
比InputBox函数最后多一个参数。
语法:Application.InputBox(对话框显示内容,输入框标题,文本框内默认值,x坐标,y坐标,帮助文件,帮助文件上下文ID,文本框内输入类型)
最后一个参数数值说明:
值 含义
0 公式
1 数字
2 文本 (字符串)
4 逻辑值 (True 或 False)
8 单元格引用,作为一个 Range 对象
16 错误值,如 #N/A
64 数值数组
148、 InputBox基本应用
经过测试发现当不输入任何内容直接点确定都会返回空,InputBox函数点取消返回空,Application的InputBox方法点取消返回False,点关闭和点取消的返回值一样。

'1 输入的内容返回给一个变量
Sub test1()
Dim sr
sr = InputBox(“输入测试”, “测试”, 100)
MsgBox sr
sr = Application.InputBox(“输入测试”, “测试”, 100)
MsgBox sr
End Sub

'2 如果不输入直接点确定返回空
Sub test2()
Dim sr
sr = InputBox(“输入测试”, “测试”)
MsgBox sr
sr = Application.InputBox(“输入测试”, “测试”)
MsgBox sr
End Sub

Sub test3()
Dim sr
sr = InputBox(“输入测试”, “测试”)
If sr = “” Then
MsgBox “你没有输入就点了确定”
End If

sr = Application.InputBox(“输入测试”, “测试”)
If sr = “” Then
MsgBox “你没有输入就点了确定”
ElseIf sr = “False” Then
MsgBox “你没有输入就点了取消”
End If
End Sub

'3 如果直接点了"退出"按钮会有什么值返回
Sub test4()
Dim sr
sr = InputBox(“输入测试”, “测试”)
MsgBox sr '返回空
sr = Application.InputBox(“输入测试”, “测试”)
MsgBox sr '返回False
End Sub
149、 最后一个参数说明
'最后一个参数数值说明:
’ 值 含义
'0 公式
'1 数字
'2 文本 (字符串)
'4 逻辑值 (True 或 False)
'8 单元格引用,作为一个 Range 对象
'16 错误值,如 #N/A
'64 数值数组

’ 1.引用单元格
InputBox方法的最后个参数值为8的时候,可以用鼠标选择单元格的地址.使用变量是使用SET声明的对象变量,则返回的是一个单元格对象,否则返回的这个单元格区域的值,即VBA数组.
Sub text5()
Dim rg As Range
Set rg = Application.InputBox(“请选择单元格区域”, “选取提示”, , , , , , 8)
MsgBox rg.Parent.Name & “!” & rg.Address
End Sub

 Sub text6()
 Dim rg
  rg = Application.InputBox("请选择单元格区域", "选取提示", , , , , , 8)
 MsgBox rg(2, 1)

End Sub

'2 公式引用
当最后一个参数设置为0时,可以输入公式,返回的也是一个公式字符串,如果公式中含单元格引用,可以自动转换成rc引用格式(以当前活动单元格为参照)
Sub test7()
Dim r
r = Application.InputBox(“请输入公式”, “输入提示”, , , , , , 0)
MsgBox r
End Sub

'3 限制输入返回的数值格式
Sub test8()
Dim r
r = Application.InputBox(“请输入公式”, “输入提示”, , , , , , 1) '输入非数字则会提示无效的数字
MsgBox r
End Sub
Sub test9()
Dim r
r = Application.InputBox(“请输入公式”, “输入提示”, , , , , , 2) '可以输入字符,当然,文字型数字也符字符
MsgBox TypeName®
End Sub

'4.数值数组
可以选取单元格区域的值作为数组,也可以输入以带有大括号的一维或二维数组。
Sub test10()
Dim r
r = Application.InputBox(“请输入公式”, “输入提示”, , , , , , 64) '可以输入字符,当然,文字型数字也符字符
MsgBox r(2, 1)
End Sub

发布了47 篇原创文章 · 获赞 0 · 访问量 214

猜你喜欢

转载自blog.csdn.net/tiansdk320/article/details/104365493