Cum se șterge rândul folosind VBA (14 moduri)

  • Imparte Asta
Hugh West

Dacă sunteți în căutarea unora dintre cele mai simple modalități de a șterge rânduri folosind VBA , atunci vă aflați în locul potrivit.

Să trecem la articolul principal.

Descărcați caietul de lucru

VBA Șterge rândul.xlsm

14 moduri de a șterge rândul folosind VBA

Aici, am trei tabele de date pentru a arăta modalitățile de ștergere a rândurilor folosind VBA Primul tabel conține câteva Produse unei companii și a lor Dimensiuni , Prețuri .

Al doilea are câteva Coduri de produs și a celor corespunzătoare Dimensiunile produsului și Prețuri

Și ultimul conține câteva Nume de proiecte și a respectivelor Date de începere și Costuri .

Pentru crearea articolului, am folosit Microsoft Excel 365 puteți utiliza orice altă versiune, în funcție de confortul dumneavoastră.

Metoda-1: Ștergeți un singur rând utilizând VBA

Să spunem că doriți să ștergeți rândul care conține Produs Pantoful 1, și pentru a șterge acest rând unic puteți urma această metodă.

Etapa-01 :

➤Vezi la Dezvoltator Tab>> Visual Basic Opțiunea

Apoi, se va trece la Editor Visual Basic se va deschide.

➤Vezi la Introduceți Tab>> Modul Opțiunea

După aceea, un Modul vor fi create.

Etapa-02 :

➤Scrieți următorul cod

 Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub 

Aici, "Single" este numele foii de lucru, iar Rânduri(7) va selecta numărul rândului.

.EntireRow.Delete va șterge întregul rând 7.

➤Presa F5

Rezultat :

În acest fel, veți șterge rândul care conține Produs nume Pantof 1 .

Citește mai mult: Cum să ștergeți rândurile în Excel: 7 metode

Metoda 2: Ștergeți mai multe rânduri utilizând VBA

Dacă doriți să ștergeți mai multe rânduri, cum ar fi rândurile care conțin Produs nume Pantof1 , Pantof2, și Pantof3 , atunci puteți urma acest lucru VBA cod.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub 

Aici, numerele de rând 13, 10 și 7 vor fi șterse, iar pentru a scrie în serie numerele de rând trebuie să scrieți de la ultimul număr de rând la primul număr de rând, după cum urmează.

În caz contrar, după ștergerea primului rând, cum ar fi rândul 7, rândurile rămase sub acest rând se vor muta cu un rând în sus și, astfel, rândul 10 va fi rândul 9, iar rândul 13 va fi rândul 12. Din acest motiv, nu veți putea șterge rândurile corecte.

➤Presa F5

Rezultat :

Apoi, veți șterge rândurile care conțin Produs nume Pantof 1 , Pantof2, și Pantof3 .

Citește mai mult: Cum să ștergeți mai multe rânduri în Excel (3 metode)

Metoda 3: Ștergerea unui rând prin selectare

Aici, voi arăta cum se șterge un rând în raport cu o celulă activă a acelui rând.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Se va șterge rândul care are o celulă activă.

➤Salvați codul.

Etapa-02 :

➤ Selectați orice celulă dintr-un rând pe care doriți să o ștergeți ( Aici am selectat celula B7 )

➤Vezi la Dezvoltator Tab>> Macros Opțiunea

După aceea, se va trece la Macro Se va deschide Wizard.

➤Select the Numele macroului dltrow3 și apăsați Rulați

Rezultat :

După aceea, veți șterge rândul care conține Produs nume Pantof 1 .

Metoda 4: Ștergerea tuturor rândurilor din selecție

Pentru a șterge toate rândurile unei selecții, puteți urma această metodă.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Se vor șterge toate rândurile din selecție.

➤Salvați codul.

Etapa-02 :

➤Selectați intervalul de rânduri pe care doriți să le ștergeți (aici, am selectat intervalul B7:D9 )

➤Vezi la Dezvoltator Tab>> Macros Opțiunea

După aceea, se va trece la Macro Se va deschide Wizard.

➤Select the Numele macroului dltrow4 și apăsați Rulați

Rezultat :

Apoi, veți șterge rândurile care conțin Produs nume Pantof 1 , Jachetă1, și Jachetă2 .

Citește mai mult: Cum să ștergeți rândurile selectate în Excel(8 abordări)

Metoda 5: Ștergerea unui rând dacă o celulă este goală

Aici, am o celulă goală care este B9 (am eliminat valoarea din această celulă pentru această metodă), și folosind un fișier VBA cod voi șterge rândul care are B9 celulă.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

Se vor șterge toate rândurile din intervalul "B5:D13" având orice celulă goală.

➤Presa F5

Rezultat :

Apoi, veți putea șterge rândul care conține celula goală.

Citește mai mult: Cum să eliminați rândurile goale în Excel (11 metode)

Metoda 6: Ștergerea unui rând dacă întregul rând este gol

Aici, am o celulă goală care este B9 (am eliminat valorile pentru această metodă), și un rând gol care este rândul 12 (am eliminat valorile pentru această metodă), și folosind un fișier VBA și codul Funcția COUNTA Voi șterge rândul care este gol.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" este intervalul de date și PENTRU bucla va funcționa pentru fiecare celulă din acest interval.

CountA(cell.EntireRow) va returna numărul de celule care nu sunt goale, iar atunci când acesta devine 0, rândul va fi șters.

➤Presa F5

Rezultat :

După aceea, veți putea șterge rândul gol, dar nu se va șterge niciun rând care nu are toate celulele din acest rând goale.

Citește mai mult: Cum să utilizați VBA pentru a șterge rândurile goale în Excel

Metoda 7: Ștergerea fiecărui al n-lea rând

Puteți șterge fiecare al n-lea rând (în acest caz, fiecare al treilea rând) urmând această metodă.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub 

"B5:D13" este intervalul de date și rc va returna numărul total de rânduri din acest interval, care este 9 .

În acest caz, se va utiliza PENTRU bucla va începe de la ultimul rând care este rc sau 9 în acest caz și se termină cu primul rând.

Pasul -3 va ajuta la ștergerea fiecărui 3. rând în acest interval.

➤Presa F5

Rezultat :

Apoi, veți șterge rândurile care conțin Produs nume Pantof 1 , Pantof2, și Pantof3 .

Citește mai mult: Cum să ștergeți fiecare al n-lea rând în Excel (cele mai simple 6 moduri)

Lecturi similare:

  • Cum să ștergeți rândurile selectate cu Excel VBA (un ghid pas cu pas)
  • Ștergeți rândurile nefolosite în Excel (8 moduri simple)
  • Cum să ștergeți rândurile ascunse în Excel (3 metode)
  • Ștergeți rânduri infinite în Excel (5 moduri simple)
  • Cum să ștergeți rândurile din Excel care continuă la nesfârșit (4 moduri simple)

Metoda 8: Ștergerea rândului pe baza valorii celulei

În această metodă, voi șterge rândul care are o anumită valoare Cămașa 2 .

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" este intervalul de date și PENTRU bucla va funcționa pentru fiecare celulă din acest interval.

În cazul în care o celulă dintr-un rând conține valoarea "Cămașa 2" atunci rândul va fi șters.

➤Presa F5

Rezultat :

În acest fel, veți șterge rândul care conține Produs nume Cămașa 2 .

Citește mai mult: Macro VBA pentru a șterge rândul dacă celula conține o valoare în Excel (2 metode)

Metoda-9: Ștergerea rândurilor duplicate

Aici, am două rânduri care au un Cod produs 97375 și vreau să șterg unul dintre aceste rânduri, care sunt marcate cu o casetă roșie mai jos.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

Aici, "B5:D13" este intervalul de date și Coloane:=1 înseamnă că va căuta valori duplicate doar într-o singură coloană, care este coloana de pornire. Coloana B dar dacă doriți să căutați și în alte coloane, puteți utiliza acest număr în funcție de nevoile dumneavoastră.

➤Presa F5

Rezultat :

După aceea, veți putea șterge rândul care este similar cu un alt rând.

Citește mai mult: Cum să ștergeți rândurile duplicate în Excel cu VBA (8 moduri eficiente)

Metoda 10: Ștergerea rândurilor dintr-un tabel

Să presupunem că aveți următorul tabel al cărui nume este Tabelul1 și acum doriți să ștergeți rândul 6 din acest tabel. Pentru a face acest lucru, puteți urma această metodă.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub 

Aici, "Tabelul" este numele foii, "Table1" este numele tabelului și 6 este numărul rândului din acest tabel pe care doriți să îl ștergeți.

➤Presa F5

Rezultat :

În acest fel, veți șterge rândul dorit din acest tabel.

Citește mai mult: Cum să eliminați rândurile duplicate pe baza unei coloane utilizând Excel VBA

Metoda-11: Ștergerea rândurilor vizibile după filtrare

Aici, am un tabel de date care este filtrat de către Preț pentru valori mai mari de $1,500.00 și vreau să șterg toate rândurile vizibile după filtrare.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

Aici, "B5:D13" este intervalul de date.

➤Presa F5

Acum, toate rândurile vizibile după filtrare vor fi șterse. Acum puteți readuce rândurile ascunse selectând butonul Filtru semnul din Preț coloană.

➤Click pe Selectați toate opțiunea

➤Presa OK

Rezultat :

În cele din urmă, veți obține din nou rândurile ascunse în tabelul de date.

Citește mai mult: Cum să filtrați și să ștergeți rândurile cu VBA în Excel (2 metode)

Metoda 12: Ștergerea rândului pe baza ultimei celule active

Aici, ultima mea celulă activă este celula B13 și vreau să șterg aceasta având ultima celulă activă din următorul tabel de date.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub 

Aici, 2 înseamnă Coloana B pe care am celula mea activă, puteți schimba numărul în funcție de nevoile dumneavoastră.

➤Presa F5

Rezultat :

În acest fel, veți șterge ultimul rând activ.

Citește mai mult: Cod Excel VBA pentru a șterge rândurile pe baza valorii mai multor celule (3 criterii)

Metoda 13: Ștergerea rândurilor care au orice șiruri de caractere

Să presupunem că doriți să ștergeți rândurile care au orice șir de caractere, iar pentru a face acest lucru puteți urma această metodă.

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub 

Aici, "string" este numele foii, numărul primului rând al acestui interval de date este 5 iar numărul coloanei de pornire este 2

The Cu vă permite să specificați un obiect sau un tip definit de utilizator o singură dată pentru o întreagă serie de instrucțiuni.

La eroare, reluați Următorul specifică faptul că, atunci când apare o eroare de execuție, controlul trece la instrucțiunea care urmează instrucțiunii în care apare eroarea.

LastRow și LastColumn returnează ultimul rând și ultima coloană din intervalul de date.

SpecialCells(xlCellTypeConstants, xlTextValues) va selecta rândurile care au orice valoare de text din interval.

➤Presa F5

Rezultat :

Ulterior, veți șterge rândurile care au orice șir de text.

Citește mai mult: Scurtătură Excel pentru a șterge rândurile (cu tehnici bonus)

Metoda 14: Ștergerea rândului pe baza datelor

Aici, voi șterge rândurile care au o dată specială 11/12/2021 (mm/zi/aaaa) în această metodă, utilizând Funcția DATEVALUE .

Etapa-01 :

➤Follow Etapa-01 de Metoda-1

 Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End If End If End WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

Aici, "Data" este numele foii, numărul primului rând al acestui interval de date este 5 iar numărul coloanei de criterii (care coloană are date) este 3 .

The Cu vă permite să specificați un obiect sau un tip definit de utilizator o singură dată pentru o întreagă serie de instrucțiuni.

La eroare, reluați Următorul specifică faptul că, atunci când apare o eroare de execuție, controlul trece la instrucțiunea care urmează instrucțiunii în care apare eroarea.

LastRow returnează ultimul rând din intervalul de date, iar aici, opțiunea PENTRU bucla va începe de la ultimul rând care este LastRow sau 6 în acest caz, și se termină cu primul rând.

DATEVALUE va converti data text în valoare.

Aici, Uniunea va returna uniunea mai multor intervale care corespund celulelor care au data. 11/12/2021 , iar în final, intervalele vor fi șterse.

➤Presa F5

Rezultat :

După aceea, veți șterge rândurile care au o anumită dată de 11/12/2021 .

Conținut conex: Excel VBA pentru a șterge rândurile cu date specifice (9 exemple)

Secțiunea practică

Pentru a face practică de unul singur am pus la dispoziție un Practică ca mai jos, într-o foaie numită Practică Vă rog să o faceți singur.

Concluzie

În acest articol, am încercat să acopăr cele mai simple moduri de a utiliza VBA în mod eficient pentru ștergerea rândurilor. Sper că vă va fi de folos. Dacă aveți sugestii sau întrebări, nu ezitați să le împărtășiți în secțiunea de comentarii.

Hugh West este un trainer și analist Excel cu o experiență de peste 10 ani în industrie. Deține o diplomă de licență în contabilitate și finanțe și un master în administrarea afacerilor. Hugh are o pasiune pentru predare și a dezvoltat o abordare unică de predare care este ușor de urmărit și de înțeles. Cunoștințele sale experte despre Excel au ajutat mii de studenți și profesioniști din întreaga lume să-și îmbunătățească abilitățile și să exceleze în cariera lor. Prin blogul său, Hugh își împărtășește cunoștințele lumii, oferind tutoriale gratuite Excel și instruire online pentru a ajuta persoanele și companiile să-și atingă întregul potențial.