Betinget statements


Betinget uttalelser

Hvis du vil prosedyren for å oppføre seg annerledes, avhengig av forholdene den møter du nødt til å bruke en av de betingede uttalelser. I denne leksjonen skal jeg vise deg hvordan du skal skrive slike uttalelser.


Hvis Deretter erklæringen

Hvis du bruker IF..THEN uttalelse, koden vil bli henrettet hvis tilstanden er oppfylt. Se på følgende eksempel
Eksempel 1:
Dim MyTime Som DateDim timeToDouble Som DoublemyTime = # 11: 45:. 12 AM # timeToDouble = TIMEVALUE (MyTime) Hvis MyTime < 0.5 Så MsgBox ("Good Morning!")


Linje 1, 2: Her har du to variabler: en erklært som dato og den andre som Double.

Linje 3: Tid er tildelt variabelen.

Linje 5:. MyTime
verdi konverteres til dobbeltseng og overdratt til timeToDouble
variabel

Line 6: Setningen Hvis MyTime < 0,5
sjekker om det er morgen (mer om hvordan du lagrer datoer i leksjon Hvordan Excel lagrer datoer og klokkeslett). Hvis verdien er lavere enn 0,5 deretter Excel-skjermer og bdquo;! Good morning ”. Hvis verdien er større eller lik 0,5 deretter utmerker gjør ingenting.
Eksempel 2:
Dim MyTime Som DateDim timeToDouble Som DoublemyTime = # 11: 45: 12 AM # timeToDouble = TIMEVALUE (MyTime) Hvis MyTime < 0.5 ThenMsgBox ("Good Morning!") End If


VARSEL:

I det andre eksemplet på IF..THEN uttalelse opptar to linjer i stedet for en som det gjorde i forrige eksempel. I dette tilfellet, må du legge til End If i linje 8, på slutten av setningen.


Hvis Deretter Else Statement

Med IF..THEN..ELSE struktur Excel vil utføre blokk med kode hvis betingelsen er oppfylt, og en annen blokk med kode dersom betingelsen ikke er oppfylt. Se på følgende eksempel
Eksempel 3:
Dim MyTime Som DateDim timeToDouble Som DoublemyTime = # 12: 45:. 24:00 # timeToDouble = TIMEVALUE (MyTime) Hvis MyTime < 0.5 ThenMsgBox ("Good Morning!") ElseMsgBox ("God ettermiddag!") End If


FORSIKTIG

Vær forsiktig når du bruker IF..THEN..ELSE uttalelser, fordi det er veldig lett å gjøre en feil. For eksempel kan du ikke skrive
Hvis MyTime < 0.5 Så MsgBox ("Good Morning!")

i én linje, men du må skrive denne setningen i to linjer i stedet.
Hvis MyTime < 0.5 Så MsgBox ("Good Morning")

Ellers VBA vil vise følgende feil:


Hvis Deretter ElseIf Else Statement

I de foregående leksjonene, brukte vi en eksempel for å vise en av de to meldinger: „ Good Morning ”
for tiden før middag eller „ God Kveld ”
for tiden etter middag!. Men hva hvis vi ønsker å legge til det tredje vilkåret for å vise „ God kveld ”
. I dette tilfellet kan vi bruke ElseIf uttalelse

Se på følgende eksempel:.
Eksempel 4:
Dim MyTime Som DateDim timeToDouble Som DoublemyTime = # 6: 45: 24:00 # timeToDouble = TIMEVALUE (MyTime) Hvis MyTime > 0 Og MyTime < 0.5 ThenMsgBox ("Good Morning!") ElseIf MyTime > = 0,5 Og MyTime < 0.75 ThenMsgBox ("! God ettermiddag") ElseMsgBox ("Good Evening") End If


I eksempelet ovenfor, vi opprettet tre forhold:


    „! Good Morning ”
    for ganger mellom 00:00:00 og 11:59:59

    „! God Kveld ”.
    for tiden mellom 12 : 00:.!. 24:00 og 18:00:00

    „ God Kveld ”
    for ganger mellom 18:00:01 og 23:59:59 < .no>


    Velg sak erklæringen

    Hvis du må lage en masse betinget utsagn, ved hjelp av IF uttalelser er ikke den beste ideen. I en slik situasjon vil den beste måten å skrive et betinget utsagn skal bruke SELECT..CASE konstruere
    Eksempel 5:.
    Dim dayOfWeek Som BytedayOfWeek = Weekday ("12/22/2014") Velg sak dayOfWeekCase 1MsgBox ("Sunday") Sak 2MsgBox ("Monday") Sak 3MsgBox ("tirsdag") Sak 4MsgBox ("onsdag") Sak 5MsgBox ("Torsdag") Sak 6MsgBox ("Fredag") Sak 7MsgBox ("Saturday") End Select < p> dayOfWeek
    returnerer antall av dagen for den valgte datoen. I vårt tilfelle vil det være mandag


    Eksempel 6:.

    I dette eksempelet jeg brukte SELECT..CASE uttalelse til angi betingelsen for området mellom 2 og 6 og for resten.
    Dim dayOfWeek Som BytedayOfWeek = Weekday ("12/22/2014") Velg sak dayOfWeekCase 2 Til 6MsgBox ("Arbeidsdagen") Sak ElseMsgBox ("Weekend") End Select

    Hvis den returnerte dagen er mellom mandag Hotell og fredag ​​
    makro avkastning og bdquo; Arbeidsdag ”, ellers returnerer den „ Weekend ”.



    Previous:
    Next Page: