A VBA -ban dolgozva gyakran össze kell hasonlítani a húrokat. Alapértelmezés szerint, A VBA megkülönbözteti a kis- és nagybetűket, tehát ha két azonos szöveget hasonlít össze, és az egyik nagybetűs, a másik kisbetűs, a VBA különböző szövegeknek tekinti őket. Ebben az oktatóanyagban megtudhatja, hogyan lehet megakadályozni a VBA kis- és nagybetűinek megkülönböztetését.
A VBA kis- és nagybetűk megkülönböztetése
Annak érdekében, hogy a VBA megkülönböztesse a kis- és nagybetűket, fel kell tennie Opció Szöveg összehasonlítása a modul elején. Először is megvizsgáljuk a szabványos VBA viselkedést ezen opciókészlet nélkül. Ez a kód:
123456789 | Ha Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Érték akkorMsgBox "Két szöveg ugyanaz"MásMsgBox "Két szöveg különböző"Vége Ha |
A példában az A1 és B1 karakterláncokat szeretnénk összehasonlítani. Ha a karakterláncok egyenlők, akkor a „Két szöveg ugyanaz” üzenettel küldjük vissza az üzenetdobozt. Ha nem egyenlők, akkor azt az üzenetet adjuk vissza, hogy „Két szöveg különböző.
1. kép. A karakterláncok összehasonlítása a Szöveg összehasonlítása lehetőség nélkül
Amint a képen látható, mindkét szöveg ugyanaz, de az első nagybetűs, míg a második kisbetűs. Emiatt a VBA másnak tartja őket, és visszaküldte ezt az üzenetet.
1234567891011 | Opció Szöveg összehasonlításaNyilvános kis- és nagybetűkSensitiveTest ()Ha Sheet1.Range ("A1"). Value = Sheet1.Range ("B1"). Érték akkorMsgBox "Két szöveg ugyanaz"MásMsgBox "Két szöveg különböző"Vége HaEnd Sub |
Most hozzáadjuk az Option Compare Text szöveget a modul elejéhez, és látni fogjuk a különbséget. Itt a kód. A kódot ugyanazon a példán futtatjuk:
2. kép. A karakterláncok összehasonlítása a Szöveg összehasonlítása lehetőséggel
Most, amikor be van állítva az Opciók összehasonlítása szöveg, a VBA kis- és nagybetűket nem érzékenyíti, és ezt a két szöveget azonosnak tekinti.
Szöveg összehasonlítása
Ha nem nyilatkozik Opció Szöveg összehasonlítása, karakterlánc-kisbetűket konvertálhat a kis- és nagybetűk közötti összehasonlítás érdekében. Ez UCase, LCase vagy StrConv funkcióval lehetséges. Erről itt tudhat meg többet: VBA felső, alsó és megfelelő tok - funkciók