当有人使用此宏时,我一直在尝试获取文件名的名称。但由于某种原因,每次运行宏我都会得到错误: 编译错误: 参数数量错误或属性分配无效
我看了很多视频和其他回复,但没有一个帮我处理这个错误。
Sub inputbox()
Dim x As Variant
x = inputbox("Please enter your file name:", "File name")
MsgBox ("Your file name is" & x)
End Sub
答案 0 :(得分:5)
以下是您的程序,已更正:(复制并粘贴到新模块中。)
Option Explicit
Sub MyInputBoxTest()
Dim x As Variant
x = inputbox("Please enter your file name:", "File name")
MsgBox ("Your file name is " & x)
End Sub
<强>解释强>
Variant拼写错误。请注意,由于Variant
是默认数据类型,因此您实际上不需要指定它。 Dim x
与Dim x as Variant
相同。
您不能使用InputBox
或MsgBox
等名称作为程序名称。它们是保留字 - 已经被VBA内置的另一个程序使用,因此它会混淆编译器,因为它不知道你指的是哪一个。
在单词is
后添加了空格。 (纯粹化妆品)
可以使用不同的方式调用MsgBox和InputBox等函数,具体取决于您是否使用括号以及是否需要返回值。
InputBox "Hi"
InputBox ("Hi")
...其中任何一个都可以正常运行(但不会返回用户输入的内容。)
Dim x
x = InputBox ("Hi")
...会将值返回给变量x
,但是:
x = InputBox "Hi"
...会抛出错误。
强烈建议您,尤其是在学习时,将 Option Explicit
行添加到每个模块的最顶层。当您尝试编译(F9)或运行(F5)代码时,这将通过生成编译错误来帮助“强制”您正确地声明和引用变量,对象等。