输入框编译错误

时间:2018-05-29 19:17:50

标签: vba compiler-errors inputbox

当有人使用此宏时,我一直在尝试获取文件名的名称。但由于某种原因,每次运行宏我都会得到错误: 编译错误: 参数数量错误或属性分配无效

我看了很多视频和其他回复,但没有一个帮我处理这个错误。

Sub inputbox()
Dim x As Variant
x = inputbox("Please enter your file name:", "File name")    
MsgBox ("Your file name is" & x) 
End Sub

1 个答案:

答案 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 xDim x as Variant相同。

  • 您不能使用InputBoxMsgBox等名称作为程序名称。它们是保留字 - 已经被VBA内置的另一个程序使用,因此它会混淆编译器,因为它不知道你指的是哪一个。

  • 在单词is后添加了空格。 (纯粹化妆品)

可以使用不同的方式调用MsgBox和InputBox等函数,具体取决于您是否使用括号以及是否需要返回值。

InputBox "Hi"
InputBox ("Hi")

...其中任何一个都可以正常运行(但不会返回用户输入的内容。)

Dim x
x = InputBox ("Hi")

...会将值返回给变量x,但是:

x = InputBox "Hi"

...会抛出错误。

强烈建议您,尤其是在学习时, Option Explicit 行添加到每个模块的最顶层。当您尝试编译(F9)或运行(F5)代码时,这将通过生成编译错误来帮助“强制”您正确地声明和引用变量,对象等。