Come posso restituire un risultato da una funzione?
Per esempio:
Public Function test() As Integer
return 1
End Function
Questo dà un errore di compilazione.
Come faccio a rendere questa funzione restituire un numero intero?
Come posso restituire un risultato da una funzione?
Per esempio:
Public Function test() As Integer
return 1
End Function
Questo dà un errore di compilazione.
Come faccio a rendere questa funzione restituire un numero intero?
Risposte:
Per i tipi di ritorno non oggetto, devi assegnare il valore al nome della tua funzione, in questo modo:
Public Function test() As Integer
test = 1
End Function
Esempio di utilizzo:
Dim i As Integer
i = test()
Se la funzione restituisce un tipo di oggetto, è necessario utilizzare la Set
parola chiave in questo modo:
Public Function testRange() As Range
Set testRange = Range("A1")
End Function
Esempio di utilizzo:
Dim r As Range
Set r = testRange()
Si noti che l'assegnazione di un valore restituito al nome della funzione non termina l'esecuzione della funzione. Se vuoi uscire dalla funzione, devi dire esplicitamente Exit Function
. Per esempio:
Function test(ByVal justReturnOne As Boolean) As Integer
If justReturnOne Then
test = 1
Exit Function
End If
'more code...
test = 2
End Function
Documentazione: http://msdn.microsoft.com/en-us/library/office/gg264233%28v=office.14%29.aspx
Range
ad esempio), è necessario utilizzare Set
esattamente come si farebbe se si imposta una variabile oggetto in un metodo regolare. Quindi, se, ad esempio, "test" fosse una funzione che ha restituito un intervallo, l'istruzione return sarebbe simile a questa set test = Range("A1")
.
set
può portare a problemi. Ho avuto problemi a farlo senza, ma se lo uso set
non lo faccio :).
set test = Range("A1")
è esattamente equivalente a test = Range("A1").Value
, dove "test" è definito come una variante, piuttosto che un intervallo.