VBA logiske operatører - ELLER, OG, XOR, IKKE, ER OG LIKE

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

Du vil bidrage til udviklingen af ​​hjemmesiden, at dele siden med dine venner

wave wave wave wave wave