sådan sammenlignes to rækker ved hjælp af VBA

sammenligning af data række for række manuelt kan være en kedelig proces, hvis det gøres manuelt. Lad os vise dig, hvordan du sammenligner to rækker ved hjælp af VBA og automatiserer denne proces.

VBA har en indbygget funktion kaldet Strocomp, der kan sammenligne to strenge. Denne funktion returnerer et heltal baseret på resultatet af sammenligningen. Nul ‘ 0 ‘ betyder et perfekt match, og kodeeksemplet nedenfor fremhæver cellen, hvis resultatet ikke er lig med ‘0’.

Strocomp-funktion får 3 argumenter: første 2 argumenter er strengene, der skal sammenlignes, og den sidste er sammenligningstypen (valgfri). Hvis udeladt, indstillingen Sammenlign indstilling bestemmer typen af sammenligning. Nedenfor er alle tilgængelige muligheder:

  • vbUseCompareOption: udfører en sammenligning ved hjælp af indstillingen Sammenlign sætning.
  • vbBinaryCompare: udfører en binær sammenligning. Store og små bogstaver.
  • vbtekstsammenligning: udfører en tekstlig sammenligning. Ikke store og små bogstaver.
  • vbdatabasekompare: Udfører en sammenligning baseret på oplysninger i din database. Kun Microsoft Access.

koden kræver, at brugeren vælger rækkerne i et enkelt område. Markeret område tildeles en områdevariabel begge rækker, og hver celle i dette område sammenlignes kolonne for kolonne. Ved hjælp af en med-sætning behøver vi ikke gentage begge sider for hver række, og for…næste sløjfe er, hvordan vi kan kontrollere hver celle.

fremhævning

når du har fået området, kan du bruge egenskaben farveindeks til at indstille området en farve. Her er nogle indeksnumre for farver:

  • 3: Rød
  • 5: Blå
  • 6: Gul
  • 0: ingen udfyldning

først skal du tilføje modulet i projektmappen eller tilføjelsesfilen. Kopier og indsæt koden i modulet for at køre den. Den største fordel ved modulmetoden er, at den gør det muligt at gemme koden i filen, så den kan bruges igen senere. Desuden kan subrutinerne i moduler bruges af ikoner i menuen bånd eller tastaturgenveje. Husk at gemme din fil i enten eller format for at gemme din VBA kode.

prøvekode til fremhævning

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

Skriv et svar

Din e-mailadresse vil ikke blive publiceret.