我尝试调用一个提供参数的过程,它抛出一个编译错误,指出“预期:=”。
...
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)”时它失败了。它在仅提供一个参数时有效,但不适用于两个。但在我的理解中,带参数语法的过程调用是正确的。可能是什么问题?
您的过程调用语法不正确。
这个: 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)