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 Line 6: Setningen Hvis MyTime < 0,5 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. 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 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 i én linje, men du må skrive denne setningen i to linjer i stedet. Ellers VBA vil vise følgende feil: I de foregående leksjonene, brukte vi en eksempel for å vise en av de to meldinger: „ Good Morning ” Se på følgende eksempel:. I eksempelet ovenfor, vi opprettet tre forhold: 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 I dette eksempelet jeg brukte SELECT..CASE uttalelse til angi betingelsen for området mellom 2 og 6 og for resten. Hvis den returnerte dagen er mellom mandag Hotell og fredag
verdi konverteres til dobbeltseng og overdratt til timeToDouble
variabel
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:
Hvis Deretter Else Statement
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
Hvis MyTime < 0.5 Så MsgBox ("Good Morning!")
Hvis MyTime < 0.5 Så MsgBox ("Good Morning")
Hvis Deretter ElseIf Else Statement
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
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
„! 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
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:.
Dim dayOfWeek Som BytedayOfWeek = Weekday ("12/22/2014") Velg sak dayOfWeekCase 2 Til 6MsgBox ("Arbeidsdagen") Sak ElseMsgBox ("Weekend") End Select
makro avkastning og bdquo; Arbeidsdag ”, ellers returnerer den „ Weekend ”.