Hallo Hans,

Du schreibst, dass ohne die Bedingung der Fehler NICHT kommt.

Das hört sich für mich so an, als ob das Programm auf RETURN stößt, ohne vorher über GOSUB aufgerufen worden zu sein, z. B. weil die Bedingung davor nicht erfüllt wurde und das RETURN einfach weiter unten im Code auftaucht.

Also irgendwie so:

Sub Main
    On false GoSub Test
    Print "irgendwas"
  Test:
    Print "Hier bin ich"
  Return
End Sub

"false" steht hier, um eine nicht erfüllte Bedingung zu simulieren, und so wird GOSUB einfach ignoriert. Das Programm läuft aber weiter.

Zur Fehlersuche könntest Du den Ablauf mal nachvollziehen, indem Du im Basic-Editor in der Zeile mit dem GOSUB einen Haltepunkt setzt (F9-Taste oder rotes Icon), und die Ausführung dann Zeile für Zeile (mit der F8-Taste) nachverfolgst. Dann siehst Du sofort, ob die Bedingung vor GOSUB erfüllt wird, und das Programm zur Marke verzweigt.

VG

Heiko

Am 31.08.26 um 09:39 schrieb Hans Lintzen:
*Versionsinformationen*:
Version: 26.2.5.2 (X86_64)
Build ID: 620(Build:2)
CPU threads: 16; OS: Linux 7.0; UI render: default; VCL: gtk3
Locale: de-DE (de_DE.UTF-8); UI: de-DE
Ubuntu package version: 4:26.2.5.2-0ubuntu0.26.04.1
Calc: threaded

*Fehlermeldung:*
Hallo zusammen,

der '*Return*'-Befehl nach '*On* [var] *GoSub* [marke ...]' endet mit der Fehlermeldung:
        "BASIC-Laufzeitfehler:
        '3'
        Zurück ohne GoSub"
Bei '*GoSub*' ohne Bedingung funktioniert das '*Return*' dagegen einwandfrei.

Kann ich den Fehler eventuell selbst beheben? Wenn ja, wie?

Viele Grüße
Hans


--
Liste abmelden mit E-Mail an: [email protected]
Probleme? 
https://de.libreoffice.org/hilfe-kontakt/mailing-listen/abmeldung-liste/
Tipps zu Listenmails: https://wiki.documentfoundation.org/Netiquette/de
Listenarchiv: https://listarchives.libreoffice.org/de/users/
Datenschutzerklärung: https://www.documentfoundation.org/privacy

Antwort per Email an