2016-05-20 86 views
3

我想爲Calc編寫一個基本函數,返回#VALUE!可以用ISERR()進行測試。OpenOffice Calc函數返回#VALUE

Function foo() 
    foo = #VALUE! 
End Function 

但是,foo函數返回0而不是一些錯誤#VALUE !.我應該怎麼做?

+0

您可以使用StarBasic中的[CVErr()函數](http://cereusapis.com/iserror-cverr-openoffice-basic/)創建(並返回)錯誤對象。但令人遺憾的是,ISERR()和ISERROR()都沒有將結果檢測爲錯誤,而是都返回FALSE。即使使用[錯誤代碼519爲#VALUE! (與CVErr(519)](https://wiki.openoffice.org/wiki/Calc_Error_Codes)幫助... :-( – tohuwawohu

+0

@tohuwawohu:是的,我試着返回519以及但它沒有工作 –

回答

2

看起來像#VALUE!僅在電子表格中存在計算錯誤時才顯示。所以不可能返回這樣的錯誤。

相反,由當數量有望恢復文本引起#VALUE!錯誤:

Function get_number() As Any 
    'get_number = 0 'This line will not cause an error. 
    get_number = "" 'This line will cause #VALUE! because it is not a number. 
End Function 

設置公式=ISERR(GET_NUMBER() + 0)

請參閱https://forum.openoffice.org/en/forum/viewtopic.php?t=44830

+0

這就是回答我在來這裏之前找到了希望得到答案的信息。真的很可惜,我們需要破解這樣的東西:( – Cabu