Expressió If… Then… Else

Defineix un o més blocs d'expressions que només voleu executar si una condició determinada és certa.

Sintaxi:


If condition=true Then Statement block [ElseIf condition=true Then] Statement block [Else] Statement block EndIf

En lloc d'Else If podeu escriure ElseIf, en lloc d'End If podeu escriure EndIf.

Paràmetres:

L'expressió If...Then executa blocs de programa segons les condicions determinades. Quan el LibreOffice Basic troba una expressió If, la condició es prova. Si la condició és certa, s'executen totes les expressions posteriors fins a la propera expressió Else o ElseIf. Si la condició és falsa, i una expressió ElseIf segueix, el LibreOffice Basic prova la següent condició i executa les expressions següents si la condició és certa. Si és falsa, el programa continua amb la següent expressió ElseIf o Else. Les expressions que segueixen a Else s'executen només si cap de les condicions que s'han provat anteriorment no era certa. Després d'avaluar totes les condicions, i d'executar les expressions corresponents, el programa continua amb l'expressió que segueix a EndIf.

Podeu imbricar múltiples expressions If...Then.

Les expressions Else i ElseIf són opcionals.

Icona d'avís

Podeu utilitzar GoTo i GoSub per saltar fora d'un bloc If...Then, però no per saltar dins d'una estructura If...Then.


L'exemple següent us permet introduir la data de venciment d'un producte, i determina si la data de venciment ha passat.

Exemple:


Sub ExampleIfThenDate
Dim sDate As String
Dim sToday As String
    sDate = InputBox("Introduïu la data de venciment (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 "La data de venciment ha passat"
    ElseIf sDate > sToday Then
        MsgBox "La data de venciment encara no ha passat"
    Else
        MsgBox "La data de venciment és avui"
    End If
End Sub

Ens cal la vostra ajuda!