
Excel makro
Dobrý den,
potřeboval bych trochu pomoci s makrem do Excelu, které poměrně rychle potřebuji, bohužel jsem však nikdy makra netvořil.
Co potřebuji: mám 2 listy s nějakými daty, což je celkem jedno, důležité je, že v každém je jeden sloupec s emaily. Já oba sloupce pořebuji porovnat, a pokud tam bude nějaká shoda v emailu, tak v takovém případě vymazat celý řádek z listu2.
Naznačím malým algoritmem, který mě napadl, bohužel nevím, jak ho zapsat do excelu.
Sub nahrada()
For I = 0 To "počet řádků listu1"
For J = 0 To "počet řádků list2"
IF (F[I] == List2.C[I+1]) // buňka sloupec F řádek I = buňka sloupec C řádek I+1
smaž celý řádek List2.C[I+1]
Next J
Next I
End Sub
I+1 je tam jen z toho důvodu, že v druhém listu začíná seznam o řádek níže.
Díky moc, snad jste mě pochopili
Na to nepotřebuješ makro, stačí použít funkci POZVYHLEDAT. Ta vrátí relativní pozici hledaného prvku v požadované matici.
Předpokládejme, že máš:
- "List1" sloupec "F" obsahuje emaily
- "List2" sloupec "C" obsahuje emaily a ty chceš smazat z tohoto seznamu duplicitní, které se vyskytují na Listu1.
Takže na List2 do buňky D2 (nebo do jiného sloupce, který máš volný) napiš vzorec:
Tento vzorec zkopíruj do dalších buněk tohoto sloupce. Emaily, které jsou obsaženy na Listu1, budou mít v tomto sloupci pořadové číslo řádku. Emaily, které v Listu1 neexistují, tam budou mít výsledek "#N/A". Tak snadno odlišíš duplicitní emaily a můžeš je z Listu2 odstranit.
A na závěr rada - samotné vzorce zvládnou v Excelu obrovské množství práce (a navíc hodně rychle), nepotřebuješ hned vše řešit přes makro (které je navíc řádově pomalejší).