PDA

View Full Version : [VBA] Restiruire valore tra funzioni


simba24
16-09-2010, 15:02
Ciao,

ho una domanda veramente stupida... ma non sto trovando info e vorrei accorciare i tempi.

Vorrei sapere come poter restiuire un valore ad una varibile

Sub main()

i=0
Call FX (i)

End sub

Sub FX(i)
i=i+1
EndSub

Vorrei resituire al main il valore di "i" calcolato nella funzione FX. Sto commenttendo un errore e non lo trovo. Basandosi su questo esempio cosa mi potete dire?

Grazie:confused: :doh:

!fazz
16-09-2010, 17:15
soluzione 1: (brutale) dichiara i globale ovvero scrivi la dichiarazione di i prima di qualunque funzione
soluzione 2: usa i le funzioni e i parametri

Function Fx(i as Integer) as Integer
Fx=i+1
end Function

simba24
16-09-2010, 17:33
Soluzione1
già provata... e non va.

Soluzione2
non vorrei sbagliare ma in questo modo non ritorno nulla al main.

!fazz
17-09-2010, 10:44
Soluzione1
già provata... e non va.

Soluzione2
non vorrei sbagliare ma in questo modo non ritorno nulla al main.

e perchè non dovrebbe tornare nulla al main? se noti Fx=i+1 ha lo stesso nome della funzione (è l'equivalente del return del c++)

giusto per farti capire come funziona ti scrivo il codice completo

Function Fx(a As Integer) As Integer
Fx = a + 1
End Function

Sub main()
Dim parametro As Integer
Dim risultato As Integer

parametro = 1
risultato = Fx(parametro)
a = MsgBox(risultato)
End Sub


se non lo capisci copialo in un modulo ed eseguilo passo passo