2012-11-29 13 views
11

Sto cercando di capire perché VBA restituisce un errore (Compile error: Expected: =) quando chiamo un Sub e lo fornisco con più parametri. Qualsiasi aiuto sarebbe molto apprezzato.Errore di ritorno VBA quando si chiama un Sub con più parametri

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 

Il Sub che sto chiamando richiede due parametri:

Sub generateURL(row As Long, column As Long) 
+2

puoi pubblicare il codice per come lo chiami? Hai postato customerController ma fai riferimento a readAddress? – InContext

+0

Oops, ho inserito la funzione sbagliata nell'ultima riga. Ottengo l'errore nella riga 'generateURL (n, firstcol)'. – MartinUKPL

+0

cambia 'generateURL (n, firstCol)' a 'generateURL n, firstCol' –

risposta

28

Quando si chiama più di 1 parametro (cioè subito generateURL(n) lavori) è necessario usare sia per

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

utilizzando Call è la tecnica di programmazione migliore come it is clearer

Come da MSDN:

normalmente si usa l'istruzione Call per chiamare una procedura che non restituisce un valore. Se la procedura restituisce un valore, l'istruzione Call lo scarta. Non è necessario utilizzare l'istruzione Chiama quando si chiama una procedura. Tuttavia, migliora la leggibilità del codice.

+0

Penso che la spiegazione più affidabile e la risposta a questa domanda è ciò che possiamo trovare nella documentazione ufficiale fornita da Microsoft all'indirizzo https://msdn.microsoft.com/en-us/library/office/gg251432.aspx (Calling Sub and Procedure di funzionamento). –

Problemi correlati