20

を呼び出して複数のパラメータを指定すると、なぜ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私が呼んでいるものには、2つのパラメーターが必要です。

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

1 に答える 1

42

複数のパラメータを呼び出す場合(つまり、正常にgenerateURL(n)機能する場合)は、次のいずれかを使用する必要があります。

  • Call generateURL(n, firstCol)、 また
  • generateURL n, firstCol

使用する方が明確であるCallため、より優れたプログラミング手法です。

MSDNによると:

通常、Callステートメントを使用して、値を返さないプロシージャを呼び出します。プロシージャが値を返す場合、Callステートメントはその値を破棄します。プロシージャを呼び出すときに、Callステートメントを使用する必要はありません。ただし、コードの可読性は向上します

于 2012-11-29T11:16:28.373 に答える