Mens du jobber i VBA, må du ofte sammenligne strenger. Som standard er VBA er store og små bokstaver, så hvis du sammenligner to samme tekster og en av dem er med store og andre med små bokstaver, vil VBA betrakte dem som forskjellige tekster. I denne opplæringen ser du hvordan du forhindrer VBA i å være store og små bokstaver.
Gjør VBA -sak ufølsom
For å gjøre VBA ufølsom for saker, må du sette Alternativ Sammenlign tekst i begynnelsen av modulen. Først vil vi se på standard VBA -oppførsel uten dette alternativet. Dette er koden:
123456789 | If Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Value ThenMsgBox "To tekster er like"EllersMsgBox "To tekster er forskjellige"Slutt om |
I eksemplet ønsker vi å sammenligne strengene fra A1 og B1. Hvis strengene er like, returnerer vi meldingsboksen med meldingen "To tekster er like". Hvis de ikke er like, returnerer vi meldingen “To tekster er forskjellige.
Bilde 1. Sammenligning av strengene uten alternativet Sammenlign tekst
Som du kan se på bildet, er begge tekstene de samme, men den første er i store bokstaver, mens den andre er med små bokstaver. På grunn av det anser VBA dem forskjellige og returnerte denne meldingen.
1234567891011 | Alternativ Sammenlign tekstPublic Sub CaseSensitiveTest ()If Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Value ThenMsgBox "To tekster er like"EllersMsgBox "To tekster er forskjellige"Slutt omSlutt Sub |
Nå vil vi legge til Option Compare Text i begynnelsen av modulen og se forskjellen. Her er koden. Vi kjører koden på samme eksempel:
Bilde 2. Sammenligning av strengene med alternativet Sammenlign tekst
Når alternativet Sammenlign tekst er angitt, blir VBA uorientert for store og små bokstaver og anser disse to tekstene som de samme.
Sammenligning av tekst
Hvis du ikke erklærer Alternativ Sammenlign tekst, kan du konvertere strengsaker for å gjøre store og små bokstaver ufølsomme. Dette er mulig med UCase, LCase eller StrConv -funksjonen. Du kan finne ut mer om dette her: VBA øvre, nedre og riktige etui - eskefunksjoner