2011-06-07 28 views
9

Tengo una función simple en VBA y necesitaría verificar si se ha realizado correctamente o no. No conozco VBA mucho, así que no tengo idea si es posible o no. Quiero hacer algo como esto: bool X=MyFunction().¿Función que devuelve Boolean?

Estoy usando VBA en la programación descriptiva QTP. Esto no funciona:

Function A as Boolean 
    A=true 
End Function 

Dice: Expected statement

Pero no puedo ver ningún tipo de retorno en mi método, etc.

Respuesta

18
function MyFunction() as Boolean 
    ..... 
    ..... 
    MyFunction = True 'worked 
end function 

dim a as boolean = MyFunction() 
6

En VBA, se devuelve el valor de una función de asignar a una variable con el mismo nombre que la función:

Function MyFunc() as Boolean 
    MyFunc = True 
End Function 
+0

Gracias, no he escrito su VBA dentro del plan de ahorro. Cuando intento esto, dice "Declaración esperada". – Mirial

+0

¿Qué es este QTP? – codeape

+0

Quick Test Professional de HP. – Mirial

0

Bueno, si usted tiene acceso t o su declaración de función, puede establecer un tipo de retorno bool para él y devolver verdadero o falso según la ejecución. Una vez que su función devuelve un bool, su código funcionará.

0

No hay manera real de comprobar si una función funcionó en VBA. Debes decidir por ti mismo si tu función fue exitosa. Por ejemplo:

Function AFunction() as Boolean 
    on error goto 1 
    MyFunc = True 
    AFunction = True 
    Exit Function 
    1 
    AFunction = False 
End Function 

Lo anterior le informaría si la función falló. Si falla, va a la etiqueta '1' y luego devuelve falso; de lo contrario, devuelve verdadero.

Si no está buscando un "error", entonces debe decidir si los datos devueltos o suministrados son correctos. Una forma de hacerlo es devolver un valor específico [código de error] que representa una falla.

3

¿Sospecho que puede estar utilizando VBScript en lugar de VBA? Si ese es el caso, entonces VBScript no indica Tipo

esto funcionará en VBScript

dim test,b 
test = 1 
b=false 
msgbox ("Calling proc before function test=" & test) 
msgbox("Calling proc before function b=" & b) 
b = A(test) 
msgbox ("Calling proc after function test=" & test) 
msgbox("Calling proc after function b=" & b) 

Function A(test) 
test = test +1 
A=true 
End Function 

o en su ejemplo

Function A()  
A=true 
End Function 
Cuestiones relacionadas