输入框编译错误

Input box Compile Error

当有人使用这个宏时,我一直试图获取文件名的名称。但出于某种原因,每次我 运行 宏时,我都会收到错误消息: 编译错误: 参数数量错误或无效 属性 赋值

我看了很多视频和其他回复,但其中 none 帮助我解决了这个错误。

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

这是您的程序,已更正:(复制并粘贴到新模块中。)

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 是默认数据类型,您实际上不需要指定它。 Dim xDim x as Variant 相同。

  • 您不能使用 InputBoxMsgBox 之类的名称作为过程的名称。它们是 保留字 -- 已经被另一个内置于 VBA 的过程使用,所以它混淆了编译器,因为它不知道你指的是哪个。

  • 在单词is后添加了一个space。 (纯属装饰品)

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

InputBox "Hi"
InputBox ("Hi")

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

Dim x
x = InputBox ("Hi")

...将 return 的值赋给变量 x,但是:

x = InputBox "Hi"

...将引发错误。


强烈建议您 将行 Option Explicit 添加到每个模块的最顶部 ,尤其是在学习时.这将帮助 "force" 您在尝试编译 (F9) 或 运行 (F5) 代码时生成编译错误,从而正确声明和引用变量、对象等。