Reputation: 612
I'm trying to figure out why VBA is returning an error (Compile error: Expected: =)
when I call a Subroutine and supply it with multiple parameters.
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
The Subroutine that I'm calling requires two parameters:
Sub generateURL(row As Long, column As Long)
Upvotes: 21
Views: 43777
Reputation: 55672
When calling more than 1 parameter (i.e. just generateURL(n)
works) you need to either use
Call generateURL(n, firstCol)
, orgenerateURL n, firstCol
using Call
is the better programming technique as it is clearer
As per MSDN:
You normally use the Call statement to call a procedure that does not return a value. If the procedure returns a value, the Call statement discards it. You are not required to use the Call statement when calling a procedure. However, it improves the readability of your code.
Upvotes: 45