VBA宏编译错误求助:参数数量错误或属性赋值无效
解决VBA InputBox编译错误:参数数量错误或无效属性赋值
嘿,问题一眼就看出来啦!你把自己的宏命名成了inputbox,这和VBA内置的InputBox函数完全重名了——VBA这会儿彻底懵了,它搞不清你调用inputbox(...)的时候是想调用自己写的Sub过程,还是系统自带的InputBox函数,自然就抛出参数错误的提示了。
你的Sub inputbox()是没有参数的,但你调用的时候传了两个参数(提示文本和标题),这就触发了"Wrong number of arguments"的编译错误。
修正后的代码
只需要把宏的名字改成一个不与内置函数重名的名称就行,比如GetUserFileName:
Sub GetUserFileName() Dim x As Variant x = InputBox("Please enter your file name:", "File name") MsgBox "Your file name is " & x End Sub
额外小提示
- 给VBA过程/变量命名时,尽量避开系统内置的函数、语句和属性名,比如
MsgBox、Range、Date这些都别用,避免命名冲突。 - 另外
MsgBox后面的括号,如果只是直接弹出消息(不是把返回值赋值给变量),可以不用加括号,不过加了也不会报错,看个人习惯就好。
内容的提问来源于stack exchange,提问作者James
相关产品推荐
相关产品推荐

