Cuprins
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.xlsm14 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.