2012-11-29 37 views
11

我想弄清楚爲什麼VBA返回錯誤(Compile error: Expected: =)當我呼籲Sub並提供多個參數。任何幫助將不勝感激。VBA返回錯誤時調用多個參數的子

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) 
+2

你可以發佈如何調用它的代碼嗎?您已發佈customerController,但是指的是readAddress? – InContext

+0

糟糕,我在最後一行發佈了錯誤的函數。 我在'generateURL(n,firstcol)'行中得到錯誤。 – MartinUKPL

+0

將'generateURL(n,firstCol)'更改爲'generateURL n,firstCol' –

回答

28

當調用超過1個參數(即只generateURL(n)作品),你需要要麼使用

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

使用Call是更好的編程技術爲it is clearer

按照MSDN:

您正常使用Call語句來調用不返回值的過程。如果過程返回一個值,則Call語句放棄它。 您在調用過程時不需要使用Call語句。但是,它提高了代碼的可讀性

+0

我認爲這個問題最可靠的解釋和答案是我們可以在微軟官方文檔中找到的,網址是https://msdn.microsoft.com/en-us/library/office/gg251432.aspx(Calling Sub and功能程序)。 –