Spis treści
Indeks 🔎︎

# Instrukcja GoSub...Return

Wywołuje podprogram, który jest wskazany przez etykietę wewnątrz Sub lub Function. Instrukcje następujące po etykiecie są wykonywane do następnej instrukcji Return. Następnie program kontynuuje wykonywanie instrukcji następującej po instrukcji GoSub.

### Składnia:

    GoSub label[:]

### Parametry:

label: Identyfikator wiersza wskazujący, gdzie kontynuować wykonywanie. Zakres etykiety w zakresie procedury, do której należy.

Instrukcja GoSub wywołuje lokalny podprogram wskazany przez etykietę z podprogramu lub funkcji. Nazwa etykiety musi kończyć się dwukropkiem (":").

      Sub/Function foo
          ' instrukcje
          GoSub label
          ' instrukcje
          Exit Sub/Function
      label:
          ' instrukcje
          Return
      End Sub/Function

Jeśli program napotka instrukcję Return, która nie była poprzedzona instrukcją GoSub, LibreOffice zwraca komunikat o błędzie. W celu upewnienia się, że program opuści procedurę (Sub) lub funkcję (Function), zanim napotka następną instrukcję Return, należy użyć instrukcji Exit Sub lub Exit Function.

Poniższy przykład przedstawia użycie instrukcji GoSub i Return. Dwukrotne uruchomienie sekcji programu powoduje obliczenie pierwiastka kwadratowego dwóch liczb wprowadzonych przez użytkownika.

### Przykład:

    Sub ExampleGoSub
    Dim iInputa As Single
    Dim iInputb As Single
    Dim iInputc As Single
        iInputa = Int(InputBox("Wprowadź pierwszą liczbę: ","Wprowadzenie liczby"))
        iInputb = Int(InputBox("Wprowadź drugą liczbę: ","Wprowadzenie liczby"))
        iInputc=iInputa
        GoSub SquareRoot
        Print "Pierwiastek kwadratowy z ";iInputa;" wynosi ";iInputc
        iInputc=iInputb
        GoSub SquareRoot
        Print "Pierwiastek kwadratowy z ";iInputb;" wynosi ";iInputc
        Exit Sub
    SquareRoot:
        iInputc=sqr(iInputc)
        Return
    End Sub

Tematy pokrewne

Instrukcja GoTo

Instrukcja On...GoSub; instrukcja On...GoTo