VBA,使用inputbox() 和 application.inputbox() ,以及参数按次序,按名称传递的方式的差别

1 inputbox()  和 application.inputbox() 的语法和功能差别

1.1 inputbox()

  • 基本语法
  • InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
  • 其中 inputbox(prompt) 是必选参数

1.2 application.InputBox()

  • 基本语法
  • expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)
  • 可以实现选择区域功能
  • 对选择的区域如何处理,我这里还有问题

2 以 inputbox()  为例子看 按顺序/位置 传递参数 和按名称传递参数的用法差别

2.1 明确差别

  • 必选参数,是必须带的参数,一般在语法说明里 不带方括号 []
  • 可选参数,可带可不带,一般可带方括号 []

2.2 参数传递的单一写法

  • 按顺序传递参数
  1. 按顺序传递参数时,不需要写参数名,只需要带参数值即可
  2. 不传的参数,必须空出来,  比如      ,,,,
  3. 参数必须是第几个,次序必须严格正确
  • 按名称传递参数
  1. 无所谓次序,次序随意,即使是必须参数也可以写在后面
  2. 每个参数都必须带名字
  3. 参数只填需要的那几个就可以,其他的可不管,也不用空出位置来

2.3 参数传递的混合写法

  • 混合传递参数
  • 按顺序/位置传递的参数,必须写在前面,而且必须有序
  • 按名称传递的参数,必须写在后面,这部分随意

3 代码1:试验 InputBox()

Sub test201()

'inputbox()
'InputBox(prompt[, title] [, default] [, xpos] [, ypos] [, helpfile, context])
'参数传递

'必选参数
'可选参数
'按顺序传递参数
'按名称传递参数



a = InputBox("请输入一个数字", "输入框")
Debug.Print a

b = InputBox("请输入一个数字", "输入框", 999, 10240, 10240, "help.hlp", Context:=55)
Debug.Print b


c = InputBox("请输入一个数字", , , , , "help.hlp", Context:=55)
Debug.Print c

'单一写法,但是按次序传递参数
d = InputBox("请输入一个数字", , 12345)
Debug.Print d


'单一写法,但是按参数名传递,可以无序
e = InputBox(Default:=123456, Prompt:="请输入一个数字")
Debug.Print e

'混合写法,是有顺序要求的,有的按位置传,有的按参数名传参数--按名字传的不用管次序,但是得放在最后把
f = InputBox("请输入一个数字", Default:=1234567)
Debug.Print f


End Sub

4 代码2,试验application.InputBox()

  • 但是现在取得的范围,怎么处理都报错
Sub test202()
'application.InputBox()
'expression.InputBox(Prompt, Title, Default, Left, Top, HelpFile, HelpContextId, Type)

a = Application.InputBox("请选择一个范围", , , , , , 8).Value
'暂时没找到怎么处理这个变量的方法


Set b = Application.InputBox(Type:=8, Prompt:="你好,请选1个范围")


End Sub

发布了370 篇原创文章 · 获赞 45 · 访问量 9万+

猜你喜欢

转载自blog.csdn.net/xuemanqianshan/article/details/103995641