VBA If paziņojums

Ja tad
VBA Ja paziņojumi ļauj pārbaudīt, vai izteiksmes ir patiesas vai nepatiesas, izmantojot dažādus kodus, pamatojoties uz rezultātiem.Apskatīsim vienkāršu piemēru:
1 | Ja diapazons ("a2"). Vērtība> 0, tad diapazons ("b2"). Vērtība = "pozitīvs" |
Tiek pārbaudīts, vai A2 diapazona vērtība ir lielāka par 0. Ja tā, iestatiet diapazonu B2 vienādam ar “Pozitīvs”

Piezīme. Pārbaudot apstākļus, mēs izmantosim =,>, <,, = salīdzināšanas operatorus. Mēs tos sīkāk apspriedīsim vēlāk rakstā.Šeit ir vienkārša vienas rindas If paziņojuma sintakse:
1 | Ja [testa_izteiksme], tad [darbība] |
Lai atvieglotu lasīšanu, varat izmantot rindas turpinājuma rakstzīmi (pasvītrojumu), lai paplašinātu If paziņojumus līdz divām rindām (kā mēs to darījām iepriekš attēlā):
12 | Ja [testa_izteiksme], tad _[darbība] |
12 | Ja diapazons ("a2"). Vērtība> 0, tad _Diapazons ("b2"). Vērtība = "Pozitīvs" |
Beigas Ja
Iepriekš minētais “vienas rindas” paziņojums labi darbojas, pārbaudot vienu nosacījumu. Bet, tā kā jūsu IF paziņojumi kļūst sarežģītāki, ja ir vairāki nosacījumi, if paziņojuma beigās jāpievieno “End If”:
123 | Ja diapazons ("a2"). Vērtība> 0 TadDiapazons ("b2"). Vērtība = "Pozitīvs"Beigas Ja |
Šeit sintakse ir šāda:
123 | Ja [testa_izteiksme], tad[darbība]Beigas Ja |
Beigas If nozīmē paziņojuma if beigas.
Tagad pievienosim ElseIF:
ElseIF - vairāki nosacījumi
ElseIf tiek pievienots esošam If paziņojumam. Citādi, ja pārbauda, vai nosacījums ir izpildīts
TIKAI, ja iepriekšējie nosacījumi nav izpildīti.Iepriekšējā piemērā mēs pārbaudījām, vai šūnas vērtība ir pozitīva. Tagad mēs arī pārbaudīsim, vai šūnas vērtība ir negatīva, izmantojot ElseIf:
12345 | Ja diapazons ("a2"). Vērtība> 0 TadDiapazons ("b2"). Vērtība = "Pozitīvs"Cits diapazons ("a2"). Vērtība <0 TadDiapazons ("b2"). Vērtība = "Negatīvs"Beigas Ja |

Lai pārbaudītu vairākus nosacījumus, varat izmantot vairākus ElseIfs:
1234567891011 | Apakš If_Multiple_Conditions ()Ja diapazons ("a2"). Vērtība = "Kaķis" TadDiapazons ("b2"). Vērtība = "Mjau"Cits Ja diapazons ("a2"). Vērtība = "Suns" TadDiapazons ("b2"). Vērtība = "Woof"Cits Ja diapazons ("a2"). Vērtība = "Pīle" TadDiapazons ("b2"). Vērtība = "Quack"Beigas JaBeigu apakš |

Tagad mēs pievienosim Citādi:
Citādi
The Citādi darbosies, ja citi iepriekšējie nosacījumi nav izpildīti.
Mēs pabeigsim savu piemēru, izmantojot citu, lai norādītu, ka, ja šūnas vērtība nav pozitīva vai negatīva, tai jābūt nullei:
1234567 | Ja diapazons ("a2"). Vērtība> 0 TadDiapazons ("b2"). Vērtība = "Pozitīvs"Cits Ja diapazons ("a2"). Vērtība <0 TadDiapazons ("b2"). Vērtība = "Negatīvs"CitādiDiapazons ("b2"). Vērtība = "nulle"Beigas Ja |
Ja-citādi
Visizplatītākais If paziņojuma veids ir vienkāršs If-Else:
1234567 | Sub If_Else ()Ja diapazons ("a2"). Vērtība> 0 TadDiapazons ("b2"). Vērtība = "Pozitīvs"CitādiDiapazons ("b2"). Vērtība = "Nav pozitīvs"Beigas JaBeigu apakš |

Ligzdoti IF
Varat arī “ligzdot”, ja paziņojumi atrodas viens otrā.
1234567891011 | Sub Nested_Ifs ()Ja diapazons ("a2"). Vērtība> 0 TadDiapazons ("b2"). Vērtība = "Pozitīvs"CitādiJa diapazons ("a2"). Vērtība <0 TadDiapazons ("b2"). Vērtība = "Negatīvs"CitādiDiapazons ("b2"). Vērtība = "nulle"Beigas JaBeigas JaBeigu apakš |

JA - vai, un, Ksor, nē
Tālāk mēs apspriedīsim loģiskos operatorus: vai, Un, Xor, nē.
Ja Or
The Vai operators pārbauda, ja vismaz viens nosacījums ir izpildīts.
Šis kods pārbaudīs, vai A2 diapazona vērtība ir mazāka par 5000 vai lielāka par 10 000:
123 | Ja diapazons ("a2"). Vērtība 10000 TadDiapazons ("b2"). Vērtība = "ārpus diapazona"Beigas Ja |

Vienā rindā varat iekļaut vairākus Ors:
123 | Ja diapazons ("a2"). Vērtība 10000 vai diapazons ("a2"). Vērtība = 9999 TadDiapazons ("b2"). Vērtība = "ārpus diapazona"Beigas Ja |
Ja izmantojat vairākus Ors, ieteicams izmantot rindas turpinājuma rakstzīmi, lai kodu būtu vieglāk lasīt:
123456 | Ja diapazons ("a2"). Vērtība <5000 vai _Diapazons ("a2"). Vērtība> 10000 vai _Diapazons ("a2"). Vērtība = 9999 TadDiapazons ("b2"). Vērtība = "ārpus diapazona"Beigas Ja |

Ja Un
Operators And ļauj pārbaudīt, vai VISI nosacījumi ir izpildīti.
123 | Ja diapazons ("a2"). Vērtība> = 5000 Un diapazons ("a2"). Vērtība <= 10000 TadDiapazons ("b2"). Vērtība = "diapazonā"Beigas Ja |

Ja Xor
Operators Xor ļauj pārbaudīt, vai ir izpildīts tieši viens nosacījums. Ja ir izpildīti nulles nosacījumi, Xor atgriež FALSE, ja ir izpildīti divi vai vairāki nosacījumi, Xor arī atgriež nepatiesu.
Es reti esmu redzējis Xor, ko izmanto VBA programmēšanā.
Ja nē
Operators Not tiek izmantots, lai FALSE pārvērstu par TRUE vai TRUE par FALSE:
123 | Sadaļa IF_Ne ()MsgBox nav (taisnība)Beigu apakš |
Ņemiet vērā, ka operatoram Not ir nepieciešama iekava ap izteiksmi, lai pārslēgtos.
Operatoru Not var izmantot arī paziņojumiem If:
123 | Ja nē (diapazons ("a2"). Vērtība> = 5000 Un diapazons ("a2"). Vērtība <= 10000)Diapazons ("b2"). Vērtība = "ārpus diapazona"Beigas Ja |

Ja salīdzinājumi
Veicot salīdzinājumus, parasti izmantojat vienu no salīdzināšanas operatoriem:
Salīdzināšanas operators | Skaidrojums |
= | Vienāds ar |
| Nav vienāds ar |
> | Lielāks nekā |
>= | Lielāks vai vienāds ar |
< | Mazāk nekā |
<= | Mazāk vai vienādi |
Tomēr jūs varat izmantot arī jebkuru izteiksmi vai funkciju kā rezultātā rodas patiesa vai nepatiesa
Ja - Būla funkcija
Veidojot izteiksmes If paziņojumiem, varat izmantot arī jebkuru funkciju, kas ģenerē TRUE vai False. VBA ir dažas no šīm funkcijām:
Funkcija | Apraksts |
IsDate | Atgriež TRUE, ja izteiksme ir derīgs datums |
Ir tukšs | Pārbaudiet, vai nav tukšu šūnu vai nenoteiktu mainīgo |
IsError | Pārbaudiet kļūdu vērtības |
IsNull | Pārbaudiet NULL vērtību |
IsNumeric | Pārbaudiet skaitlisko vērtību |
Tos var saukt šādi:
1 | Ja IsEmpty (diapazons ("A1"). Vērtība), tad MsgBox "Cell Empty" |
Programmai Excel ir arī daudzas papildu funkcijas, kuras var izsaukt, izmantojot WorksheetFunction. Šeit ir Excel IsText funkcijas piemērs:
12 | Ja Application.WorksheetFunction.IsText (Diapazons ("a2"). Vērtība) Tad _MsgBox "Šūna ir teksts" |
Varat arī izveidot savas lietotāja definētās funkcijas (UDF). Zemāk mēs izveidosim vienkāršu Būla funkciju, kas atgriež patiesu. Tad šo funkciju mēs izsauksim savā paziņojumā If:
1234567891011 | Apakšfunkcija If_Function ()Ja TrueFunction TadMsgBox "True"Beigas JaBeigu apakšFunkcija TrueFunction () Kā BūlaTrueFunction = TrueBeigu funkcija |

Teksta salīdzināšana
Varat arī salīdzināt tekstu, kas līdzīgs skaitļu salīdzināšanai:
Salīdzinot tekstu, jums jāņem vērā “Lieta” (augšējā vai apakšējā). Pēc noklusējuma VBA burtus ar dažādiem burtiem uzskata par neatbilstošiem. Citiem vārdiem sakot, "A" "a".Ja vēlaties, lai VBA ignorētu reģistru, moduļa augšdaļā jāpievieno opcija Salīdzināt tekstu:
1 | Opcija Salīdzināt tekstu |
Pēc šīs deklarācijas “A” = “a” izdarīšanas:
12345 | Opcija Salīdzināt tekstuApakšfonds If_Text ()MsgBox "a" = "A"Beigu apakš |
VBA ja patīk
VBA patīk operators ļauj precīzi salīdzināt tekstu. Noklikšķiniet uz saites “Patīk operatoram”, lai uzzinātu vairāk, bet tālāk mēs parādīsim pamata piemēru:
12345678 | Dim strName kā StringstrName = "Čārlza kungs"Ja strName Tāpat kā "Mr*" TadMsgBox "True"CitādiMsgBox "False"Beigas Ja |
Šeit mēs izmantojam zvaigznīti “*” aizstājējzīmi. * Apzīmē jebkuru rakstzīmju skaitu. Tātad iepriekš minētais If paziņojums atgriezīsies TRUE. Operators Patīk ir ārkārtīgi spēcīgs, bet bieži vien nepietiekami izmantots rīks teksta apstrādei.
Ja cilpas
VBA cilpas ļauj atkārtot darbības. IF-ELSE apvienošana ar cilpām ir lielisks veids, kā ātri apstrādāt daudzus aprēķinus.
Turpinot mūsu pozitīvo / negatīvo piemēru, mēs pievienosim katrai cilpai cilpu caur virkni šūnu:
1234567891011121314 | Apakš If_Loop ()Dim šūna kā diapazonsKatrai diapazona šūnai ("A2: A6")Ja šūna.vērtība> 0 TadŠūna. Nobīde (0, 1). Vērtība = "Pozitīvs"ElseIf Cell.Value <0 TadŠūna.Pārvietojums (0, 1). Vērtība = "Negatīvs"CitādiŠūna. Nobīde (0, 1). Vērtība = "Nulle"Beigas JaNākamā šūnaBeigu apakš |
Ja citi piemēri
Tagad mēs apskatīsim dažus konkrētākus piemērus.
Pārbaudiet, vai šūna ir tukša
Šis kods pārbaudīs, vai šūna ir tukša. Ja tas ir tukšs, tas šūnu ignorēs. Ja tas nav tukšs, tas izvadīs šūnas vērtību šūnai pa labi:
1234567 | Apakš If_Cell_Empty ()Ja diapazons ("a2"). Vērtība "" TadDiapazons ("b2"). Vērtība = Diapazons ("a2"). VērtībaBeigas JaBeigu apakš |
Pārbaudiet, vai šūnā ir īpašs teksts
Funkcija Instr pārbauda, vai teksta virkne ir atrasta citā virknē. Izmantojiet to ar paziņojumu If, lai pārbaudītu, vai šūnā ir konkrēts teksts:
123 | Ja Instr (Diapazons ("A2"). Vērtība, "teksts")> 0 TadMsgbox "Teksts atrasts"Beigas Ja |
Pārbaudiet, vai šūnā ir teksts
Šis kods pārbaudīs, vai šūna ir teksts:
1234567 | Apakšfonds If_Cell_Is_Text ()Ja Application.WorksheetFunction.IsText (Diapazons ("a2"). Vērtība) TadMsgBox "Šūna ir teksts"Beigas JaBeigu apakš |
Ja ej
If paziņojuma rezultātu varat izmantot, lai pārietu uz citu koda sadaļu.
12345678910 | Sub IfGoTo ()Ja IsError (Cell.value) TadGoto IzlaistBeigas Ja'Kāds kodsIzlaist:Beigu apakš |
Dzēst rindu, ja šūna ir tukša
Izmantojot If un cilpas, varat pārbaudīt, vai šūna ir tukša, un, ja tā, izdzēsiet visu rindu.
123456789 | Sub DeleteRowIfCellBlank ()Dim šūna kā diapazonsKatrai diapazona šūnai ("A2: A10")Ja Cell.Value = "" Tad Cell.EntireRow.DeleteNākamā šūnaBeigu apakš |
Ja MessageBox Jā / Nē
Izmantojot VBA ziņojumu kastes, jūs varat lūgt lietotājam izvēlēties no vairākām iespējām. Jā / Nē ziņojumu lodziņā lietotājam tiek lūgts izvēlēties Jā vai Nē. Jūs varat pievienot procedūrai Jā / Nē ziņojumu lodziņu, lai jautātu lietotājam, vai viņi vēlas turpināt procedūru vai nē. Jūs apstrādāt lietotāja ievadīto informāciju, izmantojot paziņojumu Ja.Šeit ir jā/nē ziņojumu lodziņš praksē:
123456789101112 | Sub MsgBoxVariable ()Blāva atbilde Kā vesels skaitlisatbilde = MsgBox ("Vai vēlaties turpināt?", vbQuestion + vbYesNo)Ja atbilde = vbJā TadMsgBox "Jā"CitādiMsgBox "Nē"Beigas JaBeigu apakš |
VBA If, ElseIf, citādi Access VBA
Funkcijas If, ElseIf un Else Access VBA darbojas tieši tāpat kā programmā Excel VBA.
Varat izmantot paziņojumu If, lai pārbaudītu, vai ierakstu kopā ir ieraksti.
