Työskennellessäsi VBA: ssa joudut usein vertaamaan merkkijonoja. Oletuksena, VBA erottaa isot ja pienet kirjaimet, joten jos vertaat kahta samaa tekstiä ja toinen niistä on isoja ja toinen pieniä, VBA pitää niitä eri teksteinä. Tässä opetusohjelmassa näet, miten voit estää VBA: n kirjainkoon erottamisen.
Tekee VBA -kirjainkoosta erottamattoman
Jotta VBA-kirjainkoolla ei olisi merkitystä, sinun on asetettava Vaihtoehto Vertaa tekstiä moduulin alussa. Ensinnäkin tarkastelemme VBA: n vakiokäyttäytymistä ilman tätä vaihtoehtoa. Tämä on koodi:
123456789 | Jos Sheet1.Range ("A1"). Arvo = Sheet1.Range ("B1"). Arvo sittenMsgBox "Kaksi tekstiä on sama"MuuMsgBox "Kaksi tekstiä on erilainen"Loppu Jos |
Esimerkissä haluamme verrata merkkijonoja A1 ja B1. Jos merkkijonot ovat yhtä suuret, palautamme viestiruudun viestillä ”Kaksi tekstiä on sama”. Jos ne eivät ole samanarvoisia, palautamme viestin ”Kaksi tekstiä ovat erilaisia.
Kuva 1. Merkkijonojen vertailu ilman vaihtoehtoa Vertaa tekstiä
Kuten kuvasta näkyy, molemmat tekstit ovat samat, mutta ensimmäinen on isoilla kirjaimilla ja toinen pienillä kirjaimilla. Tämän vuoksi VBA pitää heitä erilaisina ja palautti tämän viestin.
1234567891011 | Vaihtoehto Vertaa tekstiäJulkinen kirjainkokoSensitiveTest ()Jos Sheet1.Range ("A1"). Arvo = Sheet1.Range ("B1"). Arvo sittenMsgBox "Kaksi tekstiä on sama"MuuMsgBox "Kaksi tekstiä on erilainen"Loppu JosEnd Sub |
Lisäämme nyt vaihtoehtojen vertailutekstin moduulin alkuun ja näemme eron. Tässä on koodi. Suoritamme koodin samassa esimerkissä:
Kuva 2. Merkkijonojen vertailu vaihtoehtoon Vertaa tekstiä
Kun vaihtoehtojen vertailuteksti on asetettu, VBA: sta tulee kirjainkoon erottamaton ja pitää näitä kahta tekstiä samana.
Tekstin vertailu
Jos et ilmoita Vaihtoehto Vertaa tekstiä, voit muuntaa merkkijonokirjaimia vertaillaksesi kirjainkokoa. Tämä on mahdollista UCase-, LCase- tai StrConv -toiminnolla. Lisätietoja tästä löydät täältä: VBA: n ylä-, ala- ja oikea kotelotoiminnot