Подтвердить что ты не робот

Ошибка возврата VBA при вызове Sub с несколькими параметрами

Я пытаюсь понять, почему 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)
4b9b3361

Ответ 1

При вызове более одного параметра (т.е. просто generateURL(n) работает) вам нужно либо использовать

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

с использованием Call - лучший способ программирования, поскольку он более ясен

В соответствии с MSDN:

Обычно вы используете оператор Call для вызова процедуры, которая не возвращает значение. Если процедура возвращает значение, оператор Call отбрасывает ее. При вызове процедуры вам не требуется использовать оператор Call. Однако улучшает читабельность вашего кода.