0

有没有一种方法可以通过not以下方式将语句与函数结合起来:

我希望它像这个例子一样工作

MsgBox not False

返回True

但是如果我添加一个函数而不是布尔语句

MsgBox not myFunction()

然后它返回一个mismatch error.

myFunction()应该返回TrueFalse

有什么建议么?

4

3 回答 3

3

您需要向我们提供更多代码,如下所示:

Public Sub test()
    MsgBox Not myfunction()
End Sub

Function myfunction() As Boolean
    myfunction = False
End Function
于 2013-08-01T12:13:56.883 回答
0

简单地

MsgBox Not Application.Evaluate(myFunction)
于 2013-08-01T12:14:34.737 回答
0

myFunction 定义为什么?如果不是:

Function myFunction(...) As Boolean
'...
End Function

这就是为什么“非”运算符保留给布尔值(真/假)

如果你的函数是这样的并且只接收 1 和 0:

Function myFunction(...) As Integer

将此添加到通话中:

MsgBox not CBool(myFunction(...))

或者如果您实际上是在尝试比较文本:

Function myFunction(...) As String

那么你将需要:

编辑:不是string.compare,(StrComp(Str1,Str2,vbTextCompare)= 0)

希望有帮助:)

于 2013-08-01T12:18:51.473 回答