Llamada a funcion..

20/12/2004 - 08:38 por Iago | Informe spam
Hola, estoy creando una macro sencilla y no se porque ocurre esto...
Tengo mimacro( ) dentro de ella llamo a funcion1 (a, b, c) el caso es q yo
pensaba que cuando mandabas datos a una funcion, esa funcion operaba con
esos datos, pero sin modificar las variables de donde vienen. Pero resulta
que si me los modifica...

Sub mimacro ( )
dim a, b as integer
a=1
b = funcion1(a)
end sub

function funcion1(c) as integer
c=c+1
funcion1=c*2
end function

Despues de ejecutar esto, a = 2, b=4, c=2
como puedo hacer para q no se modifique a?

Muchas gracias.
Un saludo.
Iago.
 

Leer las respuestas

#1 KL
20/12/2004 - 10:03 | Informe spam
Iago,

c=c+1 - aqui es donde reaignas el valor a la variable a. Lo q tienes q hacer
es introducir una variable mas:

Sub mimacro()
Dim a, b As Integer
a = 1
b = funcion1(a)
End Sub

Function funcion1(c) As Integer
d = c + 1
funcion1 = d * 2
End Function

Saludos,
KL



"Iago" wrote in message
news:
Hola, estoy creando una macro sencilla y no se porque ocurre esto...
Tengo mimacro( ) dentro de ella llamo a funcion1 (a, b, c) el caso es q yo
pensaba que cuando mandabas datos a una funcion, esa funcion operaba con
esos datos, pero sin modificar las variables de donde vienen. Pero resulta
que si me los modifica...

Sub mimacro ( )
dim a, b as integer
a=1
b = funcion1(a)
end sub

function funcion1(c) as integer
c=c+1
funcion1=c*2
end function

Despues de ejecutar esto, a = 2, b=4, c=2
como puedo hacer para q no se modifique a?

Muchas gracias.
Un saludo.
Iago.

Preguntas similares