Dirbant VBA, dažnai reikia palyginti stygas. Pagal numatytuosius nustatymus VBA skiria didžiąsias ir mažąsias raides, taigi, jei palyginsite du tuos pačius tekstus ir vienas iš jų yra didžiosiomis, o kitas - mažosiomis, VBA juos laikys skirtingais tekstais. Šioje pamokoje pamatysite, kaip išvengti to, kad VBA neskirtų didžiųjų ir mažųjų raidžių.
Padaryti VBA didžiųjų ir mažųjų raidžių nejautrias
Norėdami, kad VBA būtų nejautrus didžiosioms ir mažosioms raidėms, turite įdėti Parinktis Lyginti tekstą modulio pradžioje. Pirma, mes pažvelgsime į standartinį VBA elgesį be šios parinkties. Tai yra kodas:
123456789 | Jei Sheet1.Range ("A1"). Reikšmė = Sheet1.Range ("B1"). Vertė tada„MsgBox“ „Du tekstai yra vienodi“Kitas„MsgBox“ „Du tekstai yra skirtingi“Pabaiga Jei |
Pavyzdyje norime palyginti eilutes iš A1 ir B1. Jei eilutės yra lygios, grąžinsime pranešimų laukelį su pranešimu „Du tekstai yra vienodi“. Jei jie nėra lygūs, grąžinsime pranešimą „Du tekstai yra skirtingi.
Vaizdas 1. Lyginant eilutes be parinkties Palyginti tekstą
Kaip matote paveikslėlyje, abu tekstai yra vienodi, tačiau pirmasis yra didžiosiomis raidėmis, o antrasis - mažosiomis. Dėl to VBA laiko juos skirtingais ir grąžino šią žinutę.
1234567891011 | Parinktis Lyginti tekstąViešosios mažosios raidėsSensitiveTest ()Jei Sheet1.Range ("A1"). Reikšmė = Sheet1.Range ("B1"). Vertė tada„MsgBox“ „Du tekstai yra vienodi“Kitas„MsgBox“ „Du tekstai yra skirtingi“Pabaiga JeiPabaiga Sub |
Dabar modulio pradžioje pridėsime parinktį Palyginti tekstą ir pamatysime skirtumą. Čia yra kodas. Mes vykdome kodą pagal tą patį pavyzdį:
2 paveikslas. Lyginant eilutes su parinktimi Palyginti tekstą
Dabar, kai nustatytas parinkčių palyginimo tekstas, VBA tampa nejautrus didžiosioms ir mažosioms raidėms ir laiko šiuos du tekstus vienodais.
Teksto palyginimas
Jei nedeklaruosite Parinktis Lyginti tekstą, galite konvertuoti eilutes, kad būtų galima palyginti didžiųjų ir mažųjų raidžių. Tai galima padaryti naudojant UCase, LCase arba StrConv funkciją. Daugiau apie tai galite sužinoti čia: VBA viršutinės, apatinės ir tinkamos dėklų funkcijos