2016-05-20 88 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