20

我试图弄清楚为什么在调用 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

Sub我正在调用的需要两个参数:

Sub generateURL(row As Long, column As Long)
4

1 回答 1

42

当调用超过 1 个参数(即generateURL(n)正常工作)时,您需要使用

  • Call generateURL(n, firstCol), 或者
  • generateURL n, firstCol

usingCall是更好的编程技术,因为它更清晰

根据 MSDN:

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

于 2012-11-29T11:16:28.373 回答