VBA lar deg bruke de logiske operatorene Og, Eller, Ikke, Xor å sammenligne verdier. Operatørene regnes som "boolske", noe som betyr at de returnerer Sant eller usant som et resultat.
Hvis du vil lære å sammenligne strenger, klikk her: VBA Compare Strings - StrComp
Hvis du vil lære å bruke sammenligningsoperatorer, klikk her: VBA -sammenligningsoperatorer - ikke lik og mer
Bruke And Logical Operator
De Og logisk operatør sammenligner to eller flere forhold. Hvis alle betingelsene er sanne, vil operatøren returnere True. Hvis minst ett av vilkårene ikke er oppfylt, vil operatøren returnere False. Her er et eksempel:
123456789101112 | Dim intA som heltallDim intB Som heltallDim blnResult As BooleanintA = 5intB = 5Hvis intA = 5 Og intB = 5 DablnResult = SantEllersblnResult = FalskSlutt om |
I dette eksemplet vil vi sjekke om begge deler intA og intB er lik 5. Hvis dette er sant, er verdien av boolsk blnResult vil være sant, ellers vil det være usant.
Først setter vi verdier av intA og intB til 5:
12 | intA = 5intB = 5 |
Etter det bruker vi Og operatør i If -setningen for å kontrollere om verdiene er lik 5:
12345 | Hvis intA = 5 Og intB = 5 DablnResult = SantEllersblnResult = FalskSlutt om |
Ettersom begge variablene er lik 5, vil blnResult returnerer True:
Bilde 1. Bruke den Og logiske operatoren i VBA
Bruke Or Logical Operator
De Eller logisk operatør sammenligner to eller flere forhold. Hvis minst ett av vilkårene er sant, vil det returnere True. Hvis ingen av betingelsene er sanne, vil operatøren returnere False. Her er koden for eksemplet:
123456789101112 | Dim intA som heltallDim intB Som heltallDim blnResult As BooleanintA = 5intB = 10Hvis intA = 5 Eller intB = 5 DablnResult = SantEllersblnResult = FalskSlutt om |
I dette eksemplet vil vi sjekke om begge deler intA er lik 5. eller intB er lik 10. Hvis noen av disse betingelsene er sanne, er verdien av boolsk blnResult vil være sant, ellers vil det være usant.
Først setter vi verdien av intA til 5 og intB til 10:
12 | intA = 5intB = 10 |
Etter det bruker vi Eller operatør i If -setningen for å kontrollere om noen av verdiene er lik 5:
12345 | Hvis intA = 5 Eller intB = 5 DablnResult = SantEllersblnResult = FalskSlutt om |
Som intA verdien er 5, blnResult returnerer True:
Bilde 2. Bruke operatøren Or logisk i VBA
Bruke Not Logical Operator
De Ikke logisk operatør sjekker en eller flere betingelser. Hvis betingelsene er sanne, returnerer operatøren False. Ellers returnerer den True. Her er koden for eksemplet:
12345678910 | Dim intA som heltallDim blnResult As BooleanintA = 5Hvis ikke (intA = 6) DablnResult = SantEllersblnResult = FalskSlutt om |
I dette eksemplet vil vi sjekke om verdien av intA er ikke lik 6. Hvis intA er forskjellig fra 6, verdien av boolsk blnResult vil være sant, ellers vil det være usant.
Først setter vi verdien av intA til 5:
1 | intA = 5 |
Etter det bruker vi Not -operatoren i If -setningen for å sjekke om verdien av intA er forskjellig fra 6:
12345 | Hvis ikke (intA = 6) DablnResult = SantEllersblnResult = FalskSlutt om |
Som intA verdien er 5, blnResult returnerer True:
Bilde 3. Bruke ikke logisk operator i VBA
Bruke Xor Logical Operator
De Xor logisk operatør sammenligner to eller flere forhold. Hvis nøyaktig en av betingelsene er sanne, vil den returnere True. Hvis ingen av betingelsene er sanne, eller flere enn en er sant, vil den returnere False. Her er koden for eksemplet:
123456789101112 | Dim intA som heltallDim intB Som heltallDim blnResult As BooleanintA = 5intB = 10Hvis intA = 5 Xor intB = 5 DablnResult = SantEllersblnResult = FalskSlutt om |
I dette eksemplet vil vi kontrollere om nøyaktig en av verdiene (intA eller IntB) er lik 5. Hvis bare én betingelse er sann, er verdien av boolsk blnResult vil være sant, ellers vil det være usant.
Først setter vi verdien av intA til 5 og intB til 10:
12 | intA = 5intB = 10 |
Etter det bruker vi Eller operatør i If -setningen for å kontrollere om noen av verdiene er lik 5:
12345 | Hvis intA = 5 Xor intB = 5 DablnResult = SantEllersblnResult = FalskSlutt om |
Som intA verdien er 5 og intB er 10, den blnResult returnerer True:
Bilde 4. Bruke den logiske Xor -operatoren i VBA
Er operatør
Is Operator tester om to objektvariabler lagrer det samme objektet.
La oss se på et eksempel. Her vil vi tildele to regneark til regnearkobjekter rng1 og rng2, og teste om de to regnearkobjektene lagrer det samme regnearket:
12345678910111213 | Sub CompareObjects ()Dim ws1 Som regneark, ws2 Som regnearkSett ws1 = Ark ("Ark1")Sett ws2 = Sheets ("Sheet2")Hvis ws1 er ws2 DaMsgBox "Samme WS"EllersMsgBox "Ulike WS"Slutt omSlutt Sub |
Selvfølgelig er regnearkobjektene ikke de samme, så "Ulike WSer" returneres.
Som operatør
Like Operator kan sammenligne to strenger for unøyaktige kamper. Dette eksemplet vil teste om en streng starter med "Mr."
1234567891011121314 | Sub LikeDemo ()Dim strName Som strengDim blnResult As BooleanstrName = "Mr. Michael James"If strName Like "Mr*" ThenblnResult = SantEllersblnResult = FalskSlutt omSlutt Sub |