2016-05-20 12 views
3

Ich möchte eine Basisfunktion für Calc schreiben, die #WERT zurückgibt! testbar mit ISERR().OpenOffice Calc Funktion zurück #WERT

Function foo() 
    foo = #VALUE! 
End Function 

Aber diese foo Funktion gibt 0 zurück und nicht irgendein Fehler #WERT !. Wie soll ich das machen?

+0

Sie können ein Fehlerobjekt mithilfe der Funktion [CVErr()] (http://cereusapis.com/iserror-cverr-openoffice-basic/) in StarBasic erstellen (und zurückgeben). Aber leider weder ISERR() noch ISERROR() erkennen das Ergebnis als Fehler, beide geben stattdessen FALSE zurück. Auch mit dem [Fehlercode 519 für #VALUE! (mit CVErr (519)] (https://wiki.openoffice.org/wiki/Calc_Error_Codes) hilft ... :-( – tohuwawohu

+0

@tohuwawohu: Ja, ich habe versucht, auch 519 zurückzugeben, aber es hat nicht funktioniert. –

Antwort

2

Es sieht aus wie #VALUE! wird nur angezeigt, wenn ein Berechnungsfehler in der Kalkulationstabelle ist. Daher ist es nicht möglich, einen solchen Fehler zurückzugeben.

Stattdessen verursachen einen #VALUE! Fehler durch Text zurückkehrt, wenn eine Zahl erwartet wird:

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 

die Formel =ISERR(GET_NUMBER() + 0) ein.

Siehe https://forum.openoffice.org/en/forum/viewtopic.php?t=44830.

+0

Das ist die Antwort, die ich gefunden habe, bevor ich hierher kam, in der Hoffnung auf die Antwort. Das ist wirklich schade, dass wir so etwas hacken müssen :( – Cabu