2013-08-01 48 views
0

是否與以下列方式的功能組合not聲明的方式:我希望它像這個例子VBA的Excel:不聲明及公式

MsgBox not False 

返回True工作

但如果我增加一個功能,而不是布爾聲明

MsgBox not myFunction() 

的則返回一個mismatch error

myFunction()應該返回TrueFalse

有什麼建議?

+0

你試過MsgBox Not(myFunction())'? – RBarryYoung

回答

3

你需要給我們更多的代碼,如下面的工作:

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

Function myfunction() As Boolean 
    myfunction = False 
End Function 
0

只需

MsgBox Not Application.Evaluate(myFunction) 
+0

你爲什麼要評估而不只是調用函數? –

+0

因爲調用函數給出了一個錯配錯誤。評估工作作爲一種解決方案。 – karamell

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)

希望幫助:)

+0

'String.Compare'是VB.NET,而不是VBA。 –