Jak hromadně odstranit řádky v Excelu?

Programy pro práci v kanceláři (Word, Excel, Access…=>Office)

Moderátor: Mods_senior

Uživatelský avatar
atari
Level 5
Level 5
Příspěvky: 2101
Registrován: říjen 08
Pohlaví: Muž

Jak hromadně odstranit řádky v Excelu?

Příspěvekod atari » 23 říj 2019 09:44

Potřebuji odstranit řádky, které ve sloupci B neobsahují 999. Udělal jsem to cyklem viz níže. Jelikož se uprostřed cyklu snižuje hodnota řádků, tak po každém smazání snižuji hodnotu i. A aby se to po posledním řádku nezacyklilo, tak neustále hodnotu "I" porovnávám s posledním řádkem a při shodě násilně cyklus uknčim.

Toto řešení mi připadá neprofesionální a při velkém množství řádků pomalé. Existuje elegantnější a rychlejší způsob jak ty řádky smazat?

Kód: Vybrat vše

Sub odstranit_radky()
PosledniRadek = Cells(Rows.Count, "B").End(xlUp).Row 'poslední rádek

For i = 1 To PosledniRadek
    If Cells(i, 2) = 999 Then
    Else
        Rows(i).Delete 'smazeme rádky kde není 999
        i = i - 1 'snižuji hodnotu i
    End If
    PosledniRadek = Cells(Rows.Count, "B").End(xlUp).Row 'znovu načtu poslední řádek
    If i = PosledniRadek Then Exit For 'pokud je "i" na posledním řádku tak ukončím cyklus
Next i
End Sub
Nemáte oprávnění prohlížet přiložené soubory.



Reklama
Zivan
Level 4
Level 4
Příspěvky: 1204
Registrován: leden 10
Pohlaví: Nespecifikováno

Re: Jak hromadně odstranit řádky v Excelu?

Příspěvekod Zivan » 23 říj 2019 09:55

Netusim jestli nejde v Excelu nejak filtrovat radky, ziskat spravne a ty hromadne smazat...ale co projet ty radky od konce? Kdyz jich bude 100, ty zjistis ze 90. radek neobsahuje 999, smazes ho a jdes na radek 89. Nevadi ti, ze se z radku 91 stal radek 90...atd.

Nemusis pak resit jaky je aktualne posledni radek a uvnitr for cyklu meni promennou i, coz si vzdy koleduje o problem.

Uživatelský avatar
atari
Level 5
Level 5
Příspěvky: 2101
Registrován: říjen 08
Pohlaví: Muž

Re: Jak hromadně odstranit řádky v Excelu?

Příspěvekod atari » 23 říj 2019 10:06

OK díky, tohle funguje, a je to čisté řešení.
Pak ještě zbývá problém, že to je při velkém počtu řádků pomalé. Ale to se dá přežít.

Uživatelský avatar
Grimm
Level 1
Level 1
Příspěvky: 84
Registrován: září 17
Pohlaví: Muž

Re: Jak hromadně odstranit řádky v Excelu?

Příspěvekod Grimm » 23 říj 2019 11:44

V příloze několik možností. Jednu zmínil již Zivan
Otestuj
Nemáte oprávnění prohlížet přiložené soubory.

xlnc
Level 3.5
Level 3.5
Příspěvky: 904
Registrován: červenec 11
Pohlaví: Muž

Re: Jak hromadně odstranit řádky v Excelu?

Příspěvekod xlnc » 24 říj 2019 00:15

a) Řádky se odstraňují odspodu.
b) Jde to udělat hromadně
c) Nasaďte filtr a neřešte kraviny.
administrátor ProExcel.cz | lektor | vývojář | léčitel pro Microsoft Excel

Uživatelský avatar
atari
Level 5
Level 5
Příspěvky: 2101
Registrován: říjen 08
Pohlaví: Muž

Re: Jak hromadně odstranit řádky v Excelu?

Příspěvekod atari » 24 říj 2019 08:33

a) to už jsem udělal a funguje
b) "hromadně" - můžete dát nápovědu?
c) filtr nepřichází v úvahu, já ten soubor umistuji na web pro veřejné stažení, takže tam nemůžu nechat něco co nesmí veřejnost vidět

xlnc
Level 3.5
Level 3.5
Příspěvky: 904
Registrován: červenec 11
Pohlaví: Muž

Re: Jak hromadně odstranit řádky v Excelu?

Příspěvekod xlnc » 26 říj 2019 10:03

b)

Kód: Vybrat vše

Sub Devitky()

    Dim rngRefBunka As Range

    'se sloupcem 2...
    With Columns(2)
       
        'referencni bunka
        Set rngRefBunka = .Find(What:="999", LookAt:=xlWhole)
   
        'odstraneni rozdilnych radku
        'viz dialog Prejit na - jinak
        .ColumnDifferences(rngRefBunka).EntireRow.Delete

    End With

End Sub


c) Myslel jsem nasadit filtr a devítky přenést jinam a to zveřejnit.

Pro úplnost (jiná verze úlohy)
https://proexcel.cz/odstraneni-radku-na-zaklade-hodnoty/
administrátor ProExcel.cz | lektor | vývojář | léčitel pro Microsoft Excel


  • Mohlo by vás zajímat
    Odpovědi
    Zobrazení
    Poslední příspěvek
  • Excel: řádky do sloupců
    od Diesels » 11 lis 2019 17:06 » v Kancelářské balíky
    1
    264
    od Diesels
    11 lis 2019 18:45
  • SW na rozesílání hromadné pošty
    od Nighters » 22 říj 2019 07:47 » v Vše ostatní (sw)
    3
    1150
    od petr22
    01 lis 2019 21:20
  • Excel - makro na hromadné smazání listů
    od pavelruzickacb » 08 srp 2019 21:50 » v Kancelářské balíky
    1
    593
    od lubo.
    09 srp 2019 08:04
  • Excel - hromadné označení řádku a následné vyjmutí
    od keik » 04 říj 2019 10:57 » v Kancelářské balíky
    1
    397
    od xlnc
    04 říj 2019 11:25
  • Přesčasy v Excelu
    od pavelkrejci » 08 pro 2018 08:25 » v Kancelářské balíky
    5
    1188
    od zouhin
    29 bře 2019 13:12

Zpět na “Kancelářské balíky”

Kdo je online

Uživatelé prohlížející si toto fórum: CommonCrawl [Bot] a 5 hostů