Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem 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 :-)

Jsou zobrazeny jen nové odpovědi. Zobrazit všechny
Předmět Autor Datum
Na to nepotřebuješ makro, stačí použít funkci POZVYHLEDAT. Ta vrátí relativní pozici hledaného prvku… poslední
MachR55 30.08.2012 12:50
MachR55

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:

=POZVYHLEDAT(C2;List1!$F:$F;0)

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ší).

Zpět do poradny Odpovědět na původní otázku Nahoru