Kako izbrisati cijeli redak u Excelu pomoću VBA (primjeri)

Dodavanje i brisanje redaka dio je svakodnevnih uobičajenih zadataka pri radu s Excelom.

Iako to možete učiniti jednostavno sa samog radnog lista, ponekad ćete možda htjeti upotrijebiti VBA rutu za brisanje redaka u Excelu. To mogu biti brisanje određenog retka, više redaka u odabiru, brisanje zamjenskih redaka ili onih koji imaju određenu vrijednost.

U ovom vodiču pokazat ću vam kako izbrisati retke u Excelu pomoću VBA (više scenarija).

Pa krenimo!

Izbrišite cijeli niz pomoću VBA

Da biste izbrisali cijeli redak u Excelu pomoću VBA, morate upotrijebiti metodu EntireRow.Delete.

Na primjer, ako želite izbrisati cijeli prvi redak na radnom listu, možete upotrijebiti donji kod:

Sub IzbrišiEntireRow () Redove (1) .EntireRow.Delete End Sub

Gornji kôd prvo navodi redak koji treba izbrisati (što se postiže navođenjem broja u zagradi), a zatim koristi metodu EntireRow.Delete za njegovo brisanje.

Također možete izbrisati više redaka navođenjem ovih redova u kodu.

Na primjer, donji kod će izbrisati red 1, 5 i 9 na radnom listu:

Podizbriši RedoveEntireRow ()

Gornji kôd koristi istu logiku, gdje navodi brojeve redaka, a Excel će te redove izbrisati jedan po jedan.

VAŽNO: Kada brišete retke s nečim sličnim gore navedenom kodu, ne zaboravite početi brisati odozdo, a zatim ići gore. Na primjer, u slučaju da počnete od vrha i prvo izbrišete 1. redak, svi retci ispod njega pomaknut će se za jedan redak prema gore, a numeriranje će biti isključeno (jer bi 5. red postao 4. i tako dalje)

Izbrišite sve redove u odabiru

U slučaju da želite izbrisati sve retke u odabranom rasponu ćelija, možete upotrijebiti VBA makro kôd u nastavku:

Sub IzbrišiEntireRow () Odabir.EntireRow.Delete End Sub

Gornji kôd odnosi se na metodu EntireRow.Delete na cijeli odabir.

Izbriši zamjenske retke (ili Izbriši svaki treći/četvrti/N -ti red)

Ponekad možete dobiti ispis podataka u kojem je svaki drugi redak (ili treći, četvrti ili N -ti redak) beskoristan i treba ga izbrisati.

Radio sam s financijskim podacima gdje je svaki drugi redak bio prazan i morao se izbrisati.

Ovo je scenarij u kojem VBA doista sja.

Ispod je VBA kôd koji će proći kroz sve retke u odabiru i izbrisati svaki drugi redak:

Sub DeleteAlternateRows () RCount = Selection.Rows.Count For i = RCount Do 1 Step -2 Selection.Rows (i) .EntireRow.Delete Next i End Sub

Dopustite mi da objasnim kako ovaj VBA kod radi.

Prvo sam upotrijebio varijablu RCount da biste dobili ukupan broj redaka u odabiru.

Zatim sam upotrijebio petlju For Next za pokretanje ovoga onoliko puta koliko redaka ima. Na primjer, ako postoji 12 redaka, ova će se petlja izvoditi od 12 do 1 (tj. 12 puta). Važno je pokrenuti ovo od zadnjeg retka u odabiru do prvog jer ne želimo da se brojevi redaka mijenjaju kada se redak izbriše.

Također, koristi se korak -2 jer moramo izbrisati svaki drugi redak (odozdo prema gore). U slučaju da želite izbrisati svaki treći redak, možete koristiti -3.

Unutar VBA petlje, upotrijebio sam metodu Selection.Rows (i) .EntireRow.Delete za brisanje svakog zamjenskog retka.

Izbrišite prazne redove s VBA

Također možete koristiti metodu EntireRow.Delete za brisanje svih praznih redaka.

Ispod je VBA kôd koji će odabrati prazne ćelije u odabranom skupu podataka i izbrisati cijeli redak.

Sub DeleteBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub

Gornji kôd koristi svojstvo SpecialCells za odabir i brisanje svih ćelija koje su prazne. Ovo je ista metoda koja nam omogućuje i korištenje dijaloškog okvira "Idi na posebno" za odabir svih praznih ćelija.

Nakon što se ove prazne ćelije identificiraju pomoću SpecialCell -a, one se zatim brišu pomoću metode EntireRow.Delete.

Napomena: Ova metoda odabire prazne ćelije i ne provjerava je li cijeli redak prazan ili nije. Dakle, ako je bilo koja ćelija prazna u redu, to će i dalje izbrisati cijeli redak.

Brisanje redaka s određenom riječju/vrijednošću

Također možete koristiti jednostavan VBA kôd za prolazak kroz svaku ćeliju u odabranom rasponu i brisanje svih redaka u kojima ćelija sadrži određeni tekst ili vrijednost.

Na primjer, pretpostavimo da imate skup podataka i želim izbrisati sve ćelije s tekstom Pisač u stupcu 2 odabira.

Ispod je kôd koji će to učiniti:

Sub DeleteRowswithSpecificValue () Za i = Selection.Rows.Count To 1 Step -1 If Cells (i, 2) .Value = "Printer" Zatim ćelije (i, 2) .EntireRow.Delete End If Next i End Sub

Gornji kôd prvo broji ukupan broj redaka u odabiru. To će osigurati da se petlja izvodi samo toliko puta. Zatim koristi petlju "Za sljedeću" za prolazak kroz sve ćelije u stupcu 2.

Naredba IF THEN ELSE tada se koristi za provjeru vrijednosti u svakoj ćeliji u stupcu 2. I u slučaju da se vrijednost/tekst podudara s navedenim tekstom (što je u ovom primjeru "pisač").

U ovom primjeru provjerio sam odgovara li tekst određenom nizu ili ne. To možete učiniti i s vrijednostima. Na primjer, možete izbrisati sve retke u kojima je prodajna vrijednost manja od 1000 ili veća od 1000.

Napomena: Ovdje je važno napomenuti da petlja radi od Odabir.Redovi.Broj do 1 kako biste bili sigurni da kada se redak izbriše, to ne utječe na retke iznad njega.

Kako koristiti ovaj VBA kôd

Dopustite mi da vam pokažem kako koristiti sve kodove navedene u ovom vodiču za brisanje cijelog retka.

Morate kopirati i zalijepiti ove kodove u modul u programu Excel VB Editor. Nakon što kopirate ove kodove, možete pokrenuti makro kodove.

U nastavku su navedeni koraci za kopiranje i lijepljenje ovih VBA kodova u modul:

  1. Držite tipku ALT i pritisnite tipku F11 (ili Funkcija + Opcija + F11 na Macu). Ovo će otvoriti VB Editor
  2. U VB Editoru s lijeve strane imat ćete istraživač projekta. Ako ga ne vidite, idite na opciju Pogled, a zatim kliknite na Project Explorer.
  3. Desnom tipkom miša kliknite bilo koji objekt u Project Exploreru (za radnu knjigu u kojoj želite pokrenuti kôd).
  4. Idite na Umetni, a zatim kliknite na Modul. Ovo će umetnuti novi modul za radnu knjigu
  5. Kopirajte i zalijepite gornje kodove u modul.

A da biste pokrenuli ove kodove, možete postaviti kursor bilo gdje u kodu (koji želite pokrenuti) i pritisnuti tipku F5 (ili kliknite na zeleni trokut na alatnoj traci VBA).

Napisao sam i detaljan vodič o različitim načinima izvođenja VBA makro kodova u Excelu.

U slučaju da morate često koristiti bilo koji od ovih kodova, razmislite o tome da ih dodate u Osobnu knjigu makronaredbi, a zatim u QAT. Na ovaj način kôd će vam biti dostupan u bilo kojoj radnoj knjizi jednim klikom.

Dakle, ovo su bili neki VBA kodovi koje možete koristiti za brisanje cijelih redaka u Excelu (u različitim scenarijima). Ista se logika može primijeniti i u slučaju da želite izbrisati stupce umjesto redaka (s odgovarajućom prilagodbom u primjerima koda).

Nadam se da vam je ovaj vodič bio koristan!

Vi ćete pomoći u razvoju web stranice, dijeljenje stranicu sa svojim prijateljima

wave wave wave wave wave