Cum să ștergeți întregul rând în Excel folosind VBA (exemple)

Adăugarea și ștergerea rândurilor face parte din sarcinile obișnuite obișnuite atunci când lucrați cu Excel.

Deși puteți face acest lucru cu ușurință din foaia de lucru în sine, uneori poate doriți să utilizați ruta VBA pentru a șterge rânduri în Excel. Acestea ar putea fi ștergerea unui anumit rând, mai multe rânduri din selecție, ștergerea rândurilor alternative sau a celor care au o anumită valoare.

În acest tutorial, vă voi arăta cum să ștergeți rânduri în Excel folosind VBA (scenarii multiple).

Asadar, haideti sa începem!

Ștergeți un rând întreg folosind VBA

Pentru a șterge un rând întreg în Excel folosind VBA, trebuie să utilizați metoda EntireRow.Delete.

De exemplu, dacă doriți să ștergeți primul rând dintr-o foaie de lucru, puteți utiliza codul de mai jos:

Sub DeleteEntireRow () Rows (1) .EntireRow.Delete End Sub

Codul de mai sus specifică mai întâi rândul care trebuie șters (ceea ce se face prin specificarea numărului dintre paranteze) și apoi folosește metoda EntireRow.Delete pentru a-l șterge.

De asemenea, puteți șterge mai multe rânduri specificând aceste rânduri în cod.

De exemplu, codul de mai jos va șterge rândurile 1, 5 și 9 din foaia de lucru:

Sub DeleteEntireRow () Rows (9) .EntireRow.Elete Rows (5) .EntireRow.Elete Rows (1) .EntireRow.Elete End Sub

Codul de mai sus utilizează aceeași logică, unde specifică numerele rândurilor și Excel va șterge aceste rânduri unul câte unul.

IMPORTANT: Când ștergeți rânduri cu ceva similar cu codul de mai sus, nu uitați să începeți ștergerea din partea de jos și apoi să mergeți în sus. De exemplu, în cazul în care începeți din partea de sus și ștergeți primul rând 1, toate rândurile de sub acesta ar fi mutate cu un rând în sus și numerotarea ar fi dezactivată (deoarece rândul 5 ar deveni rândul 4 și așa mai departe)

Ștergeți toate rândurile din selecție

În cazul în care doriți să ștergeți toate rândurile dintr-un interval selectat de celule, puteți utiliza codul macro VBA de mai jos:

Sub DeleteEntireRow () Selection.EntireRow.Delete End Sub

Codul de mai sus se aplică metodei EntireRow.Delete pentru întreaga selecție.

Ștergeți rânduri alternative (sau Ștergeți fiecare al treilea / al patrulea / al treilea rând)

Uneori, puteți obține o descărcare de date în care fiecare al doilea rând (sau al treilea, al patrulea sau al N-lea rând) este inutil și trebuie șters.

Obișnuiam să lucrez cu date financiare în care fiecare al doilea rând era gol și trebuia șters.

Acesta este tipul de scenariu în care VBA strălucește cu adevărat.

Mai jos este codul VBA care va parcurge toate rândurile din selecție și va șterge fiecare al doilea rând:

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

Permiteți-mi să explic cum funcționează acest cod VBA.

În primul rând, am folosit o variabilă RCount pentru a obține numărul total de rânduri din selecție.

Apoi am folosit o buclă For Next pentru a rula acest lucru de câte ori există mai multe rânduri. De exemplu, dacă există 12 rânduri, această buclă va rula de la 12 la 1 (adică de 12 ori). Este important să rulați acest lucru de la ultimul rând din selecție până la primul, deoarece nu dorim ca numerele rândurilor să se schimbe atunci când un rând este șters.

De asemenea, se utilizează Pasul -2, deoarece trebuie să ștergem celelalte rânduri (de jos în sus). În cazul în care doriți să ștergeți fiecare al treilea rând, puteți utiliza -3.

În cadrul buclei VBA, am folosit metoda Selection.Rows (i) .EntireRow.Delete pentru a șterge fiecare rând alternativ.

Ștergeți rândurile goale cu VBA

De asemenea, puteți utiliza metoda EntireRow.Delete pentru a șterge toate rândurile goale.

Mai jos este codul VBA care va selecta celulele goale din setul de date selectat și va șterge întregul rând.

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

Codul de mai sus folosește proprietatea SpecialCells pentru a selecta și șterge toate celulele necompletate. Aceasta este aceeași metodă care ne permite, de asemenea, să folosim caseta de dialog „Mergi la special” pentru a selecta toate celulele goale.

Odată ce aceste celule goale sunt identificate folosind SpecialCell, acestea sunt apoi șterse folosind metoda EntireRow.Delete.

Notă: această metodă selectează celulele necompletate și nu verifică dacă întregul rând este necompletat sau nu. Deci, dacă o celulă este goală într-un rând, acest lucru ar șterge tot întregul rând.

Ștergeți rândurile cu un anumit cuvânt / valoare

De asemenea, puteți utiliza un cod VBA simplu pentru a parcurge fiecare celulă din intervalul selectat și a șterge toate rândurile în care o celulă conține un anumit text sau valoare.

De exemplu, să presupunem că aveți un set de date și vreau să șterg toate celulele care au textul Printer în coloana 2 a selecției.

Mai jos este codul care va face acest lucru:

Sub DeleteRowswithSpecificValue () For i = Selection.Rows.Count To 1 Step -1 If Cells (i, 2) .Value = "Printer" Then Cells (i, 2) .EntireRow.Elete End If Next i End Sub

Codul de mai sus contorizează mai întâi numărul total de rânduri din selecție. Acest lucru vă va asigura că bucla este rulată doar de atâtea ori. Apoi folosește „Pentru următoarea buclă” pentru a parcurge toate celulele din coloana 2.

Instrucțiunea IF THEN ELSE este apoi utilizată pentru a verifica valoarea din fiecare celulă din coloana 2. Și în cazul în care valoarea / textul se potrivește cu textul specificat (care este „Printer” în acest exemplu).

În acest exemplu, am verificat dacă textul se potrivește cu un anumit șir sau nu. Puteți face acest lucru și cu valori. De exemplu, puteți șterge toate rândurile în care valoarea vânzării este mai mică de 1000 sau mai mare de 1000.

Notă: un lucru important de remarcat aici este că bucla rulează de la Selecție.Rânduri.Cont la 1 pentru a vă asigura că ștergerea unui rând nu are impact asupra rândurilor de deasupra acestuia.

Cum se folosește acest cod VBA

Acum permiteți-mi să vă arăt cum să utilizați toate codurile menționate în acest tutorial pentru a șterge întregul rând.

Trebuie să copiați și să lipiți aceste coduri într-un modul în Excel VB Editor. După ce ați copiat aceste coduri, puteți rula codurile macro.

Mai jos sunt pașii pentru copierea și lipirea acestor coduri VBA într-un modul:

  1. Țineți apăsată tasta ALT și apăsați tasta F11 (sau Funcție + Opțiune + F11 în Mac). Aceasta va deschide Editorul VB
  2. În Editorul VB, veți avea exploratorul de proiecte în stânga. Dacă nu o vedeți, accesați opțiunea Vizualizare și apoi faceți clic pe Project Explorer.
  3. Faceți clic dreapta pe orice obiect din Project Explorer (pentru registrul de lucru în care doriți să rulați codul).
  4. Mergeți la Insert și apoi faceți clic pe Module. Aceasta va insera un nou modul pentru registrul de lucru
  5. Copiați și lipiți codurile de mai sus în modul.

Și pentru a rula aceste coduri, puteți plasa cursorul oriunde în cod (pe care doriți să îl rulați) și apăsați tasta F5 (sau faceți clic pe triunghiul verde din bara de instrumente VBA).

De asemenea, am scris un tutorial detaliat despre diferite moduri de a rula coduri macro VBA în Excel.

În cazul în care trebuie să utilizați oricare dintre aceste coduri destul de des, puteți lua în considerare adăugarea acestora în registrul de lucru personal Macro și apoi în QAT. În acest fel, codul vă va fi disponibil în oricare dintre registrele de lucru cu un singur clic.

Deci, acestea au fost câteva coduri VBA pe care le puteți utiliza pentru a șterge rânduri întregi în Excel (în diferite scenarii). Aceeași logică poate fi aplicată și în cazul în care doriți să ștergeți coloane în loc de rânduri (cu ajustarea corespunzătoare în exemplele de cod).

Sper că ați găsit util acest tutorial!

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave