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

时间:2012-11-29 11:00:57

标签: excel vba excel-vba

我试图找出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)

1 个答案:

答案 0 :(得分:34)

当调用多个参数时(即只有generateURL(n)有效),您需要使用

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

使用Call是更好的编程技术it is clearer

根据MSDN:

  

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