函数返回布尔值?

时间:2011-06-07 12:19:03

标签: function vba

我在VBA中有简单的功能,我需要检查它是否已成功执行。我不太了解VBA,所以我不知道它是否可行。我想做这样的事情:bool X=MyFunction()

我在QTP描述性编程中使用VBA。这不起作用:

Function A as Boolean
   A=true
End Function

它说:Expected statement

但我在方法等中看不到任何返回类型。

5 个答案:

答案 0 :(得分:21)

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

dim a as boolean = MyFunction()

答案 1 :(得分:8)

在VBA中,通过赋值给与函数同名的变量来设置函数的返回值:

Function MyFunc() as Boolean
    MyFunc = True
End Function

答案 2 :(得分:4)

我怀疑你可能在使用VBScript而不是VBA?如果是这种情况,则VBScript不会声明类型

这将在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

或在您的示例中

Function A()    
A=true
End Function

答案 3 :(得分:1)

没有真正的方法可以检查某个功能是否在VBA中有效。您必须自己决定您的功能是否成功。例如:

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

如果功能失败,上面会告诉您。如果失败,则转到标签“1”然后返回false,否则返回true。

如果您不是'错误',那么您必须确定返回或提供的数据是否正确。一种方法是返回表示失败的特定值[error-code]。

答案 4 :(得分:0)

如果您有权访问函数声明,可以为它设置bool返回类型,并根据执行情况返回true或false。 一旦你的函数返回一个bool,你的代码就可以了。