miten verrata kahta riviä Excelissä VBA: lla
tietojen vertaaminen rivi riviltä käsin voi olla työläs prosessi, jos se tehdään manuaalisesti. Olkaamme näyttää, miten verrata kaksi riviä Excel käyttämällä VBA ja automatisoida tätä prosessia.
VBA: ssa on sisäänrakennettu funktio nimeltä StrComp, joka voi verrata kahta merkkijonoa. Tämä funktio palauttaa kokonaisluvun vertailun tuloksen perusteella. Nolla ” 0 “tarkoittaa täydellistä vastaavuutta, ja alla oleva koodiesimerkki korostaa solua, jos tulos ei ole sama kuin “0”.
StrComp-funktio saa 3 argumenttia: ensimmäiset 2 argumenttia ovat verrattavia merkkijonoja ja viimeinen on vertailutyyppi (valinnainen). Jos se jätetään pois, Vertailuasetus määrittää vertailutyypin. Alla on kaikki käytettävissä olevat vaihtoehdot:
- vbUseCompareOption: suorittaa vertailun käyttämällä asetuksen vertaa lauseke.
- vbbinaarivertailu: suorittaa binäärivertailun. Huomioi kirjainkoko.
- vbtextcare: suorittaa tekstivertailun. Ei huomioida kirjainta.
- vbDatabaseCompare: Suorittaa vertailun tietokannassasi olevien tietojen perusteella. Vain Microsoft Access.
koodi edellyttää, että käyttäjä valitsee rivit yhdellä alueella. Valittu alue osoitetaan vaihteluvälille bothrows ja kutakin kyseisen alueen solua verrataan sarake sarakkeelta. Käyttämällä lauseke, meidän ei tarvitse toistaa bothrows jokaiselle riville, ja … seuraava silmukka on miten voimme tarkistaa jokaisen solun.
korostus
kun olet saanut alueen, voit käyttää ColorIndex-ominaisuutta asettaaksesi alueen väriksi. Tässä muutamia indeksinumeroita väreille:
- 3: Punainen
- 5: Sininen
- 6: Keltainen
- 0: ei täytettä
ensin täytyy lisätä moduuli työkirjaan tai lisäosatiedostoon. Kopioi ja liitä koodi moduuliin ajaa sitä. Moduulimenetelmän tärkein etu on se, että se mahdollistaa koodin tallentamisen tiedostoon, jotta sitä voidaan käyttää myöhemmin uudelleen. Lisäksi moduulien aliohjelmia voidaan käyttää valikon nauhojen kuvakkeilla tai pikanäppäimillä. Muista tallentaa tiedoston joko XLSM tai XLAM muodossa tallentaa VBA-koodi.
Näytekoodi korostukseen
Sub HighlightRowDifferences() Dim bothrows As Range, i As Integer Set bothrows = Selection With bothrows For i = 1 To .Columns.Count If Not StrComp(.Cells(1, i), .Cells(2, i), vbBinaryCompare) = 0 Then Range(.Cells(1, i), .Cells(2, i)).Interior.ColorIndex = 6 End If Next i End WithEnd Sub