编译错误“预期:=”调用另一个过程时

mff*_*ffm 2 vba

我尝试调用一个提供参数的过程,它抛出一个编译错误,指出“预期:=”。

...

Dim isWorkaround As Boolean
isWorkaround = False
If Check101.Value = True Then
     isWorkaround = True
End If

...

'Procedure I try to call
ElseIf Combo_Report_Selection = "Adjusted Report" And Combo_someOther= "Other" Then
   Call_01_Adj_Report(div, isWorkaround)
ElseIf Combo_Report_Selection = "Upload Log" Then
   Call_03_Upload_Log
ElseIf Combo_Report_Selection = "Gather Summary" Then
   Call_04_Adj_Summary
End If

Combo_Report_Selection.Value = Null
Combo_Statement.Value = Null

End Sub
__________________________________________

Private Sub Call_01_Adj_Report(ByRef calldiv As Long, ByRef isWorkaround As Boolean)

...

End Sub
__________________________________________
Run Code Online (Sandbox Code Playgroud)

当我插入调用“​​Call_01_Adj_Report(div, isWorkaround)”时它失败了。它在仅提供一个参数时有效,但不适用于两个。但在我的理解中,带参数语法的过程调用是正确的。可能是什么问题?

Mat*_*don 5

您的过程调用语法正确。

这个: Call_01_Adj_Report(div, isWorkaround)

需要是: Call_01_Adj_Report div, isWorkaround

或者,使用过时的显式调用语法:Call Call_01_Adj_Report(div, isWorkaround)

我通常非常不喜欢显式调用语法,但在这里我喜欢它如何突出过程名称的奇怪之处。避免在公共成员中使用下划线(应该是PascalCase),并以动词开头,例如CreateAdjustmentsReport

CreateAdjustmentsReport div, isWorkaround
Run Code Online (Sandbox Code Playgroud)