jak porovnat dva řádky v Excelu pomocí VBA

porovnání dat řádek po řádku ručně může být zdlouhavý proces, pokud se provádí ručně. Ukážeme vám, jak porovnat dva řádky v Excelu pomocí VBA a automatizovat tento proces.

VBA má vestavěnou funkci zvanou StrComp, která může porovnávat dva řetězce. Tato funkce vrací celé číslo na základě výsledku srovnání. Nula ” 0 ” znamená perfektní shodu a níže uvedený příklad kódu zvýrazní buňku, pokud výsledek není roven “0”.

funkce StrComp získá 3 argumenty: první 2 argumenty jsou řetězce, které mají být porovnány, a poslední je typ srovnání (volitelné). Je-li vynechán, volba porovnat nastavení určuje typ srovnání. Níže jsou uvedeny všechny Dostupné možnosti:

  • vbUseCompareOption: provede srovnání pomocí nastavení příkazu volby porovnat.
  • vbBinaryCompare: provede binární srovnání. Malá a velká písmena.
  • vbTextCompare: provede textové srovnání. Není velká a malá písmena.
  • vbDatabaseCompare: Provede srovnání na základě informací ve vaší databázi. Pouze Microsoft Access.

kód vyžaduje, aby uživatel vybral řádky v jednom rozsahu. Vybraný rozsah je přiřazen proměnné rozsahu bothrows a každá buňka v tomto rozsahu je porovnána sloupec po sloupci. Pomocí příkazu s nemusíme opakovat obě řádky pro každý řádek, a pro … další smyčka je, jak můžeme zkontrolovat každou buňku.

zvýraznění

po získání rozsahu můžete použít vlastnost ColorIndex k nastavení tohoto rozsahu barvy. Zde jsou některá čísla indexů pro barvy:

  • 3: Červená
  • 5: Modrá
  • 6: Žlutá
  • 0: Bez Výplně

za Prvé, budete muset přidat modul do sešitu nebo add-in file. Zkopírujte a vložte kód do modulu a spusťte jej. Hlavní výhodou metody modulu je, že umožňuje uložit kód do souboru, takže jej lze později znovu použít. Podprogramy v modulech lze navíc použít pomocí ikon v menu nebo klávesových zkratek. Nezapomeňte uložit soubor ve formátu XLSM nebo XLAM pro uložení kódu VBA.

ukázkový kód pro zvýraznění

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

Napsat komentář

Vaše e-mailová adresa nebude zveřejněna.