If...Then...Else-uttrykket

Definerar ei eller fleire uttrykksblokker som berre vert køyrde viss det gjevne vilkåret vert oppfylt (er True).

Syntaks:

If vilkår = True Then uttrykksblokka [ElseIf vilkår = true Then] uttrykksblokka [Else] uttrykksblokka EndIf

Du kan skriva «ELSE IF» eller «ELSEIF», «END IF» eller «ENDIF» eller med ei blanding av små og store bokstavar, for eksempel «ElseIf», «EndIf».

Parametrar:

Uttrykket If … Then utfører programblokker avhengig av dei gjevne vilkåra. Når LibreOffice Basic oppdagar eit If-uttrykk, vert vilkåra testa. Viss vilkåret er SANN (True) vert alle etterfølgjande uttrykka fram til neste Else eller ElseIf utførte. Viss vilkåret er USANN (False) og det neste uttrykket er ElseIf, vil LibreOffice Basic teste det neste vilkåret og utføre det neste uttrykket viss vilkåret er True. Dersom dette vilkåret er False, går programmet vidare til anten neste Else eller ElseIf. Uttrykk etter Else vert utførte berre viss ingen av dei tidlegare testane er True. Når alle uttrykka er kontrollerte, vil programmet utføra uttrykket som kjem etter EndIf.

Du kan fletta saman fleire If … Then uttrykk.

Else og ElseIf er valfrie.

Åtvaringsikon

Det er råd å gå ut av ei If … Then blokk med GoTo og GoSub, men det er ikkje råd å gå inn i ein If … Then struktur.


Eksemplet nedanfor viser korleis du kan skriva inn ein sluttdato for eit produkt og kontrollera om denne dagen er overskride.

Eksempel:

Sub ExampleIfThenDate

Dim sDate As String

Dim sToday As String

    sDate = InputBox("Skriv inn sluttdatoen (MM.DD.YYYY)")

    sDate = Right$(sDate, 4) + Mid$(sDate, 4, 2) + Left$(sDate, 2)

    sToday = Date$

    sToday = Right$(sToday, 4)+ Mid$(sToday, 4, 2) + Left$(sToday, 2)

    If sDate < sToday Then

        MsgBox "Sluttdatoen er overskride"

    ElseIf sDate > sToday Then

        MsgBox "Sluttdatoen er ikkje nådd"

    Else

        MsgBox "Sluttdatoen er i dag"

    End If

End Sub