可能的语法错误? “期望 =” 在来自用户窗体的子调用中
Posted
技术标签:
【中文标题】可能的语法错误? “期望 =” 在来自用户窗体的子调用中【英文标题】:Possible syntax mistake? "Expecting =" In a Sub call from a UserForm 【发布时间】:2020-03-17 16:01:14 【问题描述】:我想调用一个我声明的 Sub,它给出了一个编译错误,说它需要一个 =。 Sub 调用在 UserForm_Initialize 事件过程中。 代码如下。
在一个模块中:
Public Sub FillCb(Ar() As String, Cb As ComboBox)
Cb.Clear
For I = 1 To Application.CountA(Ar)
Cb.AddItem (Ar(I))
Next I
End Sub
在用户窗体代码中:
Private Sub UserForm_Initialize()
LblDate.Caption = Date
FillCb(LibrosNoPrestados, CbLibro)
End Sub
这段代码给了我错误。 我使用调试器逐行分析了代码,并在 Initialize 事件中注释了 las 行,到目前为止它工作正常。该错误是在编译时抛出的
FillCb(LibrosNoPrestados, CbLibro)
这里不需要其余的代码,因为正如我所说的,它可以正常工作,但是最后一行中的语法一定是错误的,我看不到错误。
【问题讨论】:
去掉FillCb
调用上的括号。
【参考方案1】:
VBA“功能”。如果你调用一个没有“Call”关键字的子例程,那么不要使用括号,如果你使用“Call”关键字,那么你需要括号。
例如
Call FillCb(LibrosNoPrestados, CbLibro)
或者
FillCb LibrosNoPrestados, CbLibro
这是微软的文档: https://docs.microsoft.com/en-us/office/vba/language/reference/user-interface-help/call-statement
【讨论】:
糟糕。我使用正确的语法使用股票函数,但没有意识到!非常感谢! 一个 VBA “功能” - 不,这不是 VBA 可能的 *misbehaviour 的问题,而是了解 VBA 如何处理过程参数的问题。参考文献Mathieu Guindon 对 VBA Runtime error ... 或 this 的评论以上是关于可能的语法错误? “期望 =” 在来自用户窗体的子调用中的主要内容,如果未能解决你的问题,请参考以下文章