Hirdetés

Új hozzászólás Aktív témák

  • cousin333

    addikt

    válasz hallgat #14093 üzenetére

    Na, megalkottam a gyilkos VBA kódot :) Nyilván lehetne még rajta reszelni, de úgy tűnik, működik, méghozzá elég gyorsan. A kód feltételezi, hogy a kérdéses számok az A1:A20000-es tartományban vannak. Akkor is így kell megadni, ha a számok csak a 2. sorban kezdődnek! Ha nem az első sorból indítasz, akkor módosítgatni kell a kódot, mert nálam a tartomány indexe és a sor száma ugyanaz (lásd a For ciklust).

    Gyakorlatilag megnézem a teljes listát, és ha azonosat találok, megjelölöm azzal, hogy törlöm a mellette(!) lévő cella tartalmát (különben csak minden 2. egyezést találna meg). A törlést nem a munkafüzeten végzem, mert az ennyi adatnál lassú lenne, hanem "belsőleg".

    Ezután fogom a teljes tartományt, és kijelölöm illetve törlöm azokat a sorokat, amiben a B cella üres. A kód:

    Sub duplikatum()

    Dim szamok As Variant

    szamok = Range("A1:B20000").Value
    sorok = ""


    For i = 2 To UBound(szamok)
    If szamok(i, 1) = szamok(i - 1, 1) Then
    szamok(i, 2) = ""
    End If
    Next i

    Range("A1:B20000").Value = szamok

    Range("B1:B20000").SpecialCells(xlCellTypeBlanks).EntireRow.Delete

    End Sub

Új hozzászólás Aktív témák