调用具有多个参数的Sub时VBA返回错误

Mar*_*KPL 14 excel vba excel-vba

我试图弄清楚为什么在我调用a 并为其提供多个参数时VBA返回错误.(Compile error: Expected: =)Sub

Sub customerController(cleanStructure As Boolean, firstCol As Integer, latCol As Integer, _
                    lngCol As Integer, Optional startRow As Long, Optional endRow As Long)

Dim i As Long, j As Long, n As Long

If (cleanStructure = False) Then
    'customer data type
    If (startRow = "") Then i = 1
    If (endRow = "") Then j = countRows
    For n = i To j - i + 1
        generateURL(n, firstCol)
        newReadXMLData (url)
        ActiveSheet.Cells(i, latCol).Value = lat
        ActiveSheet.Cells(i, lngCol).Value = lng
    Next
End If

End Sub
Run Code Online (Sandbox Code Playgroud)

Sub这我打电话需要两个参数:

Sub generateURL(row As Long, column As Long)
Run Code Online (Sandbox Code Playgroud)

bre*_*tdj 34

当调用多个参数(即只是generateURL(n)工作)时,您需要使用

  • Call generateURL(n, firstCol) , 要么
  • generateURL n, firstCol

使用Call是更好的编程技术,因为它更清晰

根据MSDN:

您通常使用Call语句来调用不返回值的过程.如果过程返回值,则Call语句将丢弃该值.调用过程时,不需要使用Call语句.但是,它提高了代码的可读性.

  • 嗯,显然,您不需要使用 Call 语句......除非您使用括号。 (2认同)