Hallo Stefan,
Stefan Weigel schrieb:
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---
Das war auch meine erste Vermutung. Als es nicht ging, habe ich dann
hier gefragt.
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.)
Das andere Verhalten von VBA sollte auch in der Online-Hilfe oder in
einem "Guide" erwähnt werden. Mal sehen wie ich das hinkriege.
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 ;-)
Das ist der Zweck meiner Anfrage. Das Beispiel werde ich auf jeden Fall
für die Online-Hilfe vorschlagen. Es wird also mal wieder ein Issue werden.
In dem Zusammenhang habe ich noch eine weitere Frage: In den
Formulierungen in der Online-Hilfe (bei isError und bei DefErr) taucht
der Begriff "error variable" auf. Gibt es so etwas in OOo-Basic
überhaupt, eine Variable, die als Inhalt einen Fehlerwert hat? Wenn ja,
wie kommt der Wert dort hinein? Anderenfalls müsste die Beschreibung von
IsError nämlich entsprechend geändert werden. Gibt es solche Variablen
in VBA?
mfG
Regina
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]