Lars Lehmann schrieb:

=WENN(IstFehler(100/0);"Division durch Null";"Kann berechnet werden")

> Basic wird es sich aber ähnlich verhalten.

Deine Vermutung liegt nahe, was aber durch folgenden Versuch _nicht_ bestätigt wird:

---schnipp---
  myDoc = thisComponent
  mySheet = myDoc.sheets(0)
  myCell = mySheet.getCellRangeByName("$C$1")
  myValue = myCell.value
  if isError(myValue) then
    print "Fehler"
  else
    print myValue
  end if
---schnipp---

Wenn die Zelle C1 einen Fehlerwert (zum Beispiel wegen einer Division durch 0) enthält, so liefert die Value-Eigenschaft den Wert 0 und keinen Fehlerwert. IsError liefert daher immer FALSE. (Nebenbei: In Excel mit VBA funktioniert IsError in einem dem obigen entsprechenden Beispiel sehr wohl, weil dort die Value-Eigenschaft einen Fehlerwert liefert.)


In einem anderen Versuch ist IsError in OOo-Basic anwendbar:

---schnipp---
 on error resume next
 a=100
 b=0
 if isError(a/b) then
    print "Fehler"
 else
    print a/b
 end if
---schnipp---

Die Division durch 0 ergibt einen Fehler. Damit der Programmablauf dadurch nicht unterbrochen wird, wurde die Fehlerbehandlung in der ersten Zeile abgeschaltet. Mit IsError() kann man prüfen, ob eine Rechenoperation möglich ist oder ob sie zu einem Fehler führen würde. In Abhängigkeit davon kann man im Programm verzweigen. Das ist IMO der Sinn und Zweck der Funktion IsError.

(Dieses Beispiel funktioniert auch in Excel mit VBA.)

Ein Codebeispiel zur Erläuterung, wie hier gezeigt, könnte in der Online-Hilfe nicht schaden ;-)

Gruß

Stefan


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to