VBA giver dig mulighed for at bruge de logiske operatorer Og, Eller, Ikke, Xor at sammenligne værdier. Operatørerne betragtes som "boolske", hvilket betyder, at de returnerer True eller False som følge heraf.
Hvis du vil lære at sammenligne strenge, klik her: VBA Sammenlign strenge - StrComp
Hvis du vil lære at bruge sammenligningsoperatorer, skal du klikke her: VBA -sammenligningsoperatorer - ikke lig med og mere
Brug af And Logical Operator
Det Og logisk operator sammenligner to eller flere betingelser. Hvis alle betingelserne er sande, returnerer operatøren True. Hvis mindst en af betingelserne ikke er opfyldt, returnerer operatøren Falsk. Her er et eksempel:
123456789101112 | Dim intA som heltalDim intB Som heltalDim blnResult Som boolskintA = 5intB = 5Hvis intA = 5 Og intB = 5 SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
I dette eksempel vil vi kontrollere, om begge dele intA og intB er lig med 5. Hvis dette er sandt, værdien af booleske blnResult vil være sandt, ellers vil det være falsk.
Først sætter vi værdier af intA og intB til 5:
12 | intA = 5intB = 5 |
Herefter bruger vi Og operatør i If -sætningen for at kontrollere, om værdierne er lig med 5:
12345 | Hvis intA = 5 Og intB = 5 SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
Da begge variabler er lig med 5, er blnResult returnerer True:
Billede 1. Brug af And logical operator i VBA
Brug af Or Logical Operator
Det Eller logisk operator sammenligner to eller flere betingelser. Hvis mindst en af betingelserne er opfyldt, returnerer den True. Hvis ingen af betingelserne er sande, returnerer operatøren Falsk. Her er koden til eksemplet:
123456789101112 | Dim intA som heltalDim intB Som heltalDim blnResult Som boolskintA = 5intB = 10Hvis intA = 5 Eller intB = 5 SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
I dette eksempel vil vi kontrollere, om begge dele intA er lig med 5. eller intB er lig med 10. Hvis en af disse betingelser er sand, er værdien af boolsk blnResult vil være sandt, ellers vil det være falsk.
Først sætter vi værdien af intA til 5 og intB til 10:
12 | intA = 5intB = 10 |
Herefter bruger vi Eller operatør i If -sætningen for at kontrollere, om nogen af værdierne er lig med 5:
12345 | Hvis intA = 5 Eller intB = 5 SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
Som intA værdien er 5, blnResult returnerer True:
Billede 2. Brug af operatøren Or logisk i VBA
Brug af den ikke logiske operatør
Det Ikke logisk operator kontrollerer en eller flere betingelser. Hvis betingelserne er sande, returnerer operatøren Falsk. Ellers returnerer den True. Her er koden til eksemplet:
12345678910 | Dim intA som heltalDim blnResult Som boolskintA = 5Hvis ikke (intA = 6) SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
I dette eksempel vil vi kontrollere, om værdien af intA er ikke lig med 6. If intA er forskellig fra 6, værdien af booleske blnResult vil være sandt, ellers vil det være falsk.
Først sætter vi værdien af intA til 5:
1 | intA = 5 |
Derefter bruger vi operatøren Not i If -sætningen til at kontrollere, om værdien af intA er forskellig fra 6:
12345 | Hvis ikke (intA = 6) SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
Som intA værdien er 5, blnResult returnerer True:
Billede 3. Brug af den ikke logiske operator i VBA
Brug af Xor Logical Operator
Det Xor logisk operator sammenligner to eller flere betingelser. Hvis præcis en af betingelserne er sand, returnerer den True. Hvis ingen af betingelserne er sande, eller mere end én er sand, returnerer den Falsk. Her er koden til eksemplet:
123456789101112 | Dim intA som heltalDim intB Som heltalDim blnResult Som boolskintA = 5intB = 10Hvis intA = 5 Xor intB = 5 SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
I dette eksempel vil vi kontrollere, om nøjagtigt en af værdierne (intA eller IntB) er lig med 5. Hvis kun én betingelse er sand, er værdien af boolesk blnResult vil være sandt, ellers vil det være falsk.
Først sætter vi værdien af intA til 5 og intB til 10:
12 | intA = 5intB = 10 |
Herefter bruger vi Eller operatør i If -sætningen for at kontrollere, om nogen af værdierne er lig med 5:
12345 | Hvis intA = 5 Xor intB = 5 SåblnResult = SandtAndetblnResult = FalskAfslut Hvis |
Som intA værdien er 5 og intB er 10, den blnResult returnerer True:
Billede 4. Brug af den logiske Xor -operator i VBA
Er operatør
Is Operator tester, om to objektvariabler gemmer det samme objekt.
Lad os se på et eksempel. Her vil vi tildele to regneark til regnearksobjekter rng1 og rng2, og teste om de to regnearksobjekter gemmer det samme regneark:
12345678910111213 | Sub CompareObjects ()Dim ws1 som regneark, ws2 som regnearkSæt ws1 = Ark ("Ark1")Sæt ws2 = Ark ("Ark2")Hvis ws1 er ws2 SåMsgBox "Samme WS"AndetMsgBox "Forskellige WS'er"Afslut HvisAfslut Sub |
Regnearksobjekterne er naturligvis ikke de samme, så "forskellige WS'er" returneres.
Ligesom operatør
Like Operator kan sammenligne to strenge for inexakte kampe. Dette eksempel tester, om en streng starter med "Mr."
1234567891011121314 | Sub LikeDemo ()Dim strName Som strengDim blnResult Som boolskstrName = "Mr. Michael James"Hvis strName Som "Mr*" SåblnResult = SandtAndetblnResult = FalskAfslut HvisAfslut Sub |