Als je in VBA werkt, moet je vaak strings vergelijken. Standaard, VBA is hoofdlettergevoelig, dus als u twee dezelfde teksten vergelijkt en een ervan in hoofdletters is en de andere in kleine letters, beschouwt VBA ze als verschillende teksten. In deze zelfstudie ziet u hoe u kunt voorkomen dat VBA hoofdlettergevoelig is.
VBA hoofdletterongevoelig maken
Om VBA hoofdletterongevoelig te maken, moet je Optie Tekst vergelijken aan het begin van de module. Eerst zullen we kijken naar het standaard VBA-gedrag zonder dat deze optie is ingesteld. Dit is de code:
123456789 | If Sheet1.Range("A1").Value = Sheet1.Range("B1").Waarde danMsgBox "Twee teksten zijn hetzelfde"AndersMsgBox "Twee teksten zijn verschillend"Stop als |
In het voorbeeld willen we de snaren van de A1 en B1 vergelijken. Als de strings gelijk zijn, zullen we het berichtvenster retourneren met het bericht "Twee teksten zijn hetzelfde". Als ze niet gelijk zijn, zullen we het bericht 'Twee teksten zijn verschillend.
Afbeelding 1. De strings vergelijken zonder de optie Tekst vergelijken
Zoals je op de afbeelding kunt zien, zijn beide teksten hetzelfde, maar de eerste is in hoofdletters en de tweede in kleine letters. Daarom beschouwt VBA ze als verschillend en retourneert dit bericht.
1234567891011 | Optie Tekst vergelijkenOpenbare Sub CaseSensitiveTest()If Sheet1.Range("A1").Value = Sheet1.Range("B1").Waarde danMsgBox "Twee teksten zijn hetzelfde"AndersMsgBox "Twee teksten zijn verschillend"Stop alsEinde sub |
Nu zullen we Option Compare Text toevoegen aan het begin van de module en het verschil zien. Hier is de code. We voeren de code uit op hetzelfde voorbeeld:
Afbeelding 2. De strings vergelijken met de optie Tekst vergelijken
Wanneer nu de optie Tekst vergelijken is ingesteld, wordt de VBA hoofdletterongevoelig en beschouwt deze twee teksten als hetzelfde.
Tekst vergelijken
Als u niet declareert Optie Tekst vergelijken, kunt u tekenreeksen converteren om hoofdletterongevoelige vergelijkingen te maken. Dit is mogelijk door de functie UCase, LCase of StrConv. U kunt hier meer informatie over vinden: VBA boven-, onder- en juiste letters - Functies van de letters