LibreOffice 25.2 Hjelp
Kallar opp ein subrutine som er namngjeve med ein etikett inne i ein sub eller ein function. Uttrykket som kjem etter merkelappen med namnet på subrutinen vert utført fram til neste Return-uttrykk. Deretter held programmet fram med å utføra uttrykka som kjem etter GoSub-uttrykket.
GoSub label[:]
label: Ein linjeidentifikator som viser kvar køyringa skal halda fram. Omfanget av merkelappen er den rutinen han høyrer til i-
Uttrykket GoSub kallar opp ein lokal subrutine (underrutine), namngjeven med ein etikett, frå ein subrutine eller ein funksjon. Namnet på etikette må avsluttast med kolon («:»).
  Sub/Function foo
      ' uttrykk
      GoSub label
      ' uttrykk
      Exit Sub/Function
  label:
      ' uttrykk
      Return
  End Sub/Function
Viss programmet kjem til eit RETURN-uttrykk utan tilhøyrande GoSub vil LibreOffice Basic gje ei feilmelding. Bruk Exit Sub eller Exit Function for å vera sikker på at programmet går ut av subrutinen eller funksjonen før det kjem til RETURN.
Eksempelet viser bruken av GOSUB og RETURN. Ved å køyra programmet to gongar, vil det rekna ut kvadratrota av to tal som brukaren skriv inn.
Sub ExampleGoSub
Dim iInputa As Single
Dim iInputb As Single
Dim iInputc As Single
    iInputa = Int(InputBox$ "Skriv inn det første talet: ","Talinnskriving"))
    iInputb = Int(InputBox$ "Skriv inn det andre talet: ","Talinnskriving"))
    iInputc=iInputa
    GoSub SquareRoot
    Print "Kvadratrota av";iInputa;" er";iInputc
    iInputc=iInputb
    GoSub SquareRoot
    Print "Kvadratrota av";iInputb;" er";iInputc
    Exit Sub
SquareRoot:
    iInputc=sqr(iInputc)
    Return
End Sub