J'ai une fonction simple dans VBA et je devrais vérifier si cela a été effectué avec succès. Je ne connais pas beaucoup VBA, alors je ne sais pas si c'est possible ou non. Je veux faire quelque chose comme ceci: bool X=MyFunction()
.
J'utilise VBA dans la programmation descriptive QTP . Cela ne fonctionne pas:
Function A as Boolean
A=true
End Function
Il dit: Expected statement
Mais je ne vois aucun type de retour dans ma méthode, etc.
function MyFunction() as Boolean
.....
.....
MyFunction = True 'worked
end function
dim a as boolean = MyFunction()
Dans VBA, vous définissez la valeur de retour d'une fonction en affectant une variable portant le même nom que la fonction:
Function MyFunc() as Boolean
MyFunc = True
End Function
Je suppose que vous utilisez peut-être VBScript au lieu de VBA? Si tel est le cas, VBScript n'indique pas le type
cela fonctionnera dans 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
ou dans votre exemple
Function A()
A=true
End Function
Il n'y a pas de moyen réel de vérifier si une fonction a fonctionné dans VBA. Vous devez décider vous-même si votre fonction a réussi. Par exemple:
Function AFunction() as Boolean
on error goto 1
MyFunc = True
AFunction = True
Exit Function
1
AFunction = False
End Function
Ce qui précède vous permet de savoir si la fonction a échoué. Si cela échoue, il passe à l'étiquette '1' puis renvoie false, sinon il renvoie true.
Si ce n'est pas une "erreur" que vous recherchez, vous devez alors décider si les données renvoyées ou fournies sont correctes. Une façon de procéder consiste à renvoyer une valeur spécifique [code d'erreur] qui représente un échec.
Eh bien, si vous avez accès à votre déclaration de fonction, vous pouvez définir un type de retour bool et la valeur true ou false en fonction de l'exécution . Une fois que votre fonction aura renvoyé un bool, votre code fonctionnera.