Kaip ištrinti eilutę naudojant VBA (14 būdų)

  • Pasidalinti
Hugh West

Jei ieškote paprasčiausių būdų, kaip ištrinti eilutę naudojant VBA tuomet esate tinkamoje vietoje.

Pereikime prie pagrindinio straipsnio.

Atsisiųsti darbo knygą

VBA Ištrinti eilutę.xlsm

14 būdų ištrinti eilutę naudojant VBA

Čia pateikiu tris duomenų lenteles, kad parodyčiau eilučių ištrynimo būdus naudojant VBA . Pirmoje lentelėje pateikiami kai kurie Produktai įmonės ir jų Dydžiai , Kainos .

Antrasis turi keletą Produktų kodai ir juos atitinkantys Produkto dydžiai ir Kainos

Ir paskutiniame yra keletas Projektų pavadinimai ir atitinkami jų Pradžios datos ir Išlaidos .

Kurdamas straipsnį naudojau "Microsoft Excel 365 versiją, galite naudoti bet kokias kitas versijas pagal savo poreikius.

1 būdas: vienos eilutės ištrynimas naudojant VBA

Tarkime, norite ištrinti eilutę, kurioje yra Produktas 1 avalynė, o norėdami ištrinti šią vieną eilutę, galite naudoti šį metodą.

Žingsnis-01 :

➤Pereiti į Kūrėjas Skirtukas>> "Visual Basic Galimybė

Tada "Visual Basic" redaktorius atsivers.

➤Pereiti į Įdėkite Skirtukas>> Modulis Galimybė

Po to Modulis bus sukurta.

Žingsnis-02 :

➤Įrašykite šį kodą

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

Čia, "Vienvietis" yra darbalapio pavadinimas, o Eilutės (7) bus pasirinktas eilutės numeris.

.EntireRow.Delete ištrinsite visą eilutę 7.

➤Press F5

Rezultatas :

Tokiu būdu ištrinsite eilutę, kurioje yra Produktas pavadinimas Batai 1 .

Skaityti daugiau: Kaip ištrinti "Excel" eilutes: 7 metodai

2 būdas: Kelių eilučių ištrynimas naudojant VBA

Jei norite ištrinti kelias eilutes, pvz., eilutes su Produktas pavadinimai Batai1 , Batai2, ir Batai3 , tada galite vadovautis šiuo VBA kodas.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

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

Čia bus ištrinti eilučių numeriai 13, 10 ir 7, o rašant eilučių numerius nuosekliai, reikia rašyti nuo paskutinės eilutės numerio iki pirmos eilutės numerio, kaip nurodyta šiame kode.

Priešingu atveju, ištrynus pirmąją eilutę, pavyzdžiui, 7 eilutę, likusios eilutės po šia eilute bus perkeltos viena eilute aukštyn, todėl 10 eilutė bus 9 eilutė, o 13 eilutė - 12. Dėl šios priežasties negalėsite ištrinti teisingų eilučių.

➤Spauda F5

Rezultatas :

Tada ištrinsite eilutes, kuriose yra Produktas pavadinimai Batai 1 , Batai2, ir Batai3 .

Skaityti daugiau: Kaip ištrinti kelias "Excel" eilutes (3 metodai)

3 būdas: Eilutės ištrynimas pasirenkant

Čia parodysiu, kaip ištrinti eilutę, atsižvelgiant į aktyvų tos eilutės langelį.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Ji ištrins eilutę, kurioje yra aktyvus langelis.

➤Išsaugokite kodą.

Žingsnis-02 :

➤Pasirinkite bet kurią eilutės ląstelę, kurią norite ištrinti ( Čia pasirinkau ląstelę B7 )

➤Pereiti į Kūrėjas Skirtukas>> Makrokomandos Galimybė

Po to Makro Atsidarys vedlys.

➤Pasirinkite Makro pavadinimas dltrow3 ir paspauskite Paleisti

Rezultatas :

Vėliau ištrinsite eilutę su Produktas pavadinimas Batai 1 .

4 būdas: visų atrinktų eilučių ištrynimas

Norėdami ištrinti visas pasirinkimo eilutes, galite naudoti šį metodą.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Bus ištrintos visos pasirinkimo eilutės.

➤Išsaugokite kodą.

Žingsnis-02 :

➤Pasirinkite eilučių, kurias norite ištrinti, intervalą (čia pasirinkau intervalą B7:D9 )

➤Pereiti į Kūrėjas Skirtukas>> Makrokomandos Galimybė

Po to Makro Atsidarys vedlys.

➤Pasirinkite Makro pavadinimas dltrow4 ir paspauskite Paleisti

Rezultatas :

Tada ištrinsite eilutes, kuriose yra Produktas pavadinimai Batai 1 , Striukė1, ir Striukė2 .

Skaityti daugiau: Kaip ištrinti pasirinktas eilutes "Excel"(8 būdai)

5 metodas: eilutės ištrynimas, jei kuris nors langelis yra tuščias

Čia turiu tuščią ląstelę, kuri yra B9 (šiam metodui pašalinau šio langelio vertę) ir naudodamas VBA kodas Ištrinsiu eilutę, kurioje B9 ląstelės.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

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

Bus ištrintos visos eilutės iš diapazono "B5:D13" turi bet kurį tuščią langelį.

➤Spauda F5

Rezultatas :

Tada galėsite ištrinti eilutę, kurioje yra tuščias langelis.

Skaityti daugiau: Kaip pašalinti tuščias "Excel" eilutes (11 metodų)

6 metodas: eilutės ištrynimas, jei visa eilutė yra tuščia

Čia turiu tuščią ląstelę, kuri yra B9 (pašalinau šio metodo reikšmes) ir tuščią eilutę, kuri yra 12 eilutė (pašalinau šio metodo reikšmes), ir naudojant VBA kodą ir COUNTA funkcija Ištrinsiu tuščią eilutę.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

 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" yra duomenų diapazonas, o FOR ciklas veiks kiekvienoje šio diapazono ląstelėje.

CountA(cell.EntireRow) bus grąžinamas neprašytų langelių skaičius, o kai jis taps lygus 0, eilutė bus ištrinta.

➤Spauda F5

Rezultatas :

Po to galėsite ištrinti tuščią eilutę, tačiau nebus ištrintos jokios eilutės, kurių visos šios eilutės ląstelės nėra tuščios.

Skaityti daugiau: Kaip naudoti VBA, kad ištrintumėte tuščias "Excel" eilutes

7 metodas: kiekvienos n-tosios eilutės ištrynimas

Taikydami šį metodą galite ištrinti kas n-tą eilutę (šiuo atveju kas trečią eilutę).

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

 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" yra duomenų diapazonas, o rc bus grąžintas bendras šio diapazono eilučių skaičius, kuris yra 9 .

Čia FOR ciklas prasidės nuo paskutinės eilutės, kuri yra rc arba 9 šiuo atveju ir baigiasi pirmąja eilute.

3 žingsnis padės ištrinti kiekvieną 3. eilutę šiame intervale.

➤Spauda F5

Rezultatas :

Tada ištrinsite eilutes, kuriose yra Produktas pavadinimai Batai 1 , Batai2, ir Batai3 .

Skaityti daugiau: Kaip ištrinti kiekvieną n-ąją "Excel" eilutę (paprasčiausi 6 būdai)

Panašūs skaitiniai:

  • Kaip ištrinti pasirinktas eilutes naudojant "Excel VBA" (žingsnis po žingsnio gairės)
  • Nenaudojamų eilučių pašalinimas programoje "Excel" (8 paprasti būdai)
  • Kaip ištrinti paslėptas "Excel" eilutes (3 metodai)
  • Ištrinkite begalę eilučių "Excel" programoje (5 paprasti būdai)
  • Kaip ištrinti "Excel" eilutes, kurios tęsiasi amžinai (4 paprasti būdai)

8 metodas: Eilutės ištrynimas pagal langelio vertę

Šiuo metodu ištrinsiu eilutę, turinčią tam tikrą reikšmę Marškinėliai 2 .

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

 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" yra duomenų diapazonas, o FOR ciklas veiks kiekvienoje šio diapazono ląstelėje.

Jei bet kuriame eilutės ląstelėje yra reikšmė "Marškinėliai 2" eilutė bus ištrinta.

➤Spauda F5

Rezultatas :

Tokiu būdu ištrinsite eilutę, kurioje yra Produktas pavadinimas Marškinėliai 2 .

Skaityti daugiau: VBA makrokomandos eilutei ištrinti, jei "Excel" ląstelėje yra reikšmė (2 metodai)

9 metodas: dubliuojančių eilučių ištrynimas

Čia turiu dvi eilutes su Produkto kodas 97375 todėl noriu ištrinti vieną iš šių eilučių, kurios toliau pažymėtos raudonu langeliu.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

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

Čia, "B5:D13" yra duomenų diapazonas, o Stulpeliai:=1 reiškia, kad bus ieškoma pasikartojančių reikšmių tik viename stulpelyje, kuris yra pradinis stulpelis. B stulpelis bet jei norite ieškoti ir kituose stulpeliuose, galite naudoti šį skaičių pagal savo poreikius.

➤Spauda F5

Rezultatas :

Po to galėsite ištrinti eilutę, kuri yra panaši į kitą eilutę.

Skaityti daugiau: Kaip ištrinti pasikartojančias eilutes "Excel" programoje naudojant VBA (8 veiksmingi būdai)

10 metodas: eilučių ištrynimas iš lentelės

Tarkime, turite tokią lentelę, kurios pavadinimas yra 1 lentelė ir dabar norite ištrinti šios lentelės eilutę Nr. 6. Norėdami tai padaryti, galite vadovautis šiuo metodu.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

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

Čia, "Lentelė" yra lapo pavadinimas, "Table1" yra lentelės pavadinimas, o 6 yra šios lentelės eilutės, kurią norite ištrinti, numeris.

➤Spauda F5

Rezultatas :

Taip ištrinsite norimą šios lentelės eilutę.

Skaityti daugiau: Kaip pašalinti pasikartojančias eilutes pagal vieną stulpelį naudojant "Excel VBA

11 metodas: matomų eilučių ištrynimas po filtravimo

Čia turiu duomenų lentelę, filtruojamą pagal Kaina stulpelyje, kurio reikšmės yra didesnės nei $1,500.00 ir noriu ištrinti visas matomas eilutes po filtravimo.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

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

Čia, "B5:D13" yra duomenų diapazonas.

➤Spauda F5

Dabar visos matomos eilutės po filtravimo bus ištrintos. Dabar galite sugrąžinti paslėptas eilutes pasirinkdami Filtras ženklas Kaina skiltis.

➤Paspauskite ant Pasirinkite visus parinktis

➤Press GERAI

Rezultatas :

Galiausiai į duomenų lentelę bus grąžintos paslėptos eilutės.

Skaityti daugiau: Kaip filtruoti ir ištrinti eilutes "Excel" programoje naudojant VBA (2 metodai)

12 metodas: Eilutės ištrynimas pagal paskutinį aktyvų langelį

Čia mano paskutinė aktyvioji ląstelė yra ląstelė B13 ir aš noriu ištrinti šį, turintį paskutinę aktyvią ląstelę iš šios duomenų lentelės.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

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

Čia, 2 reiškia B stulpelis kuriame yra mano aktyvusis mobilusis telefonas, numerį galite keisti pagal savo poreikius.

➤Press F5

Rezultatas :

Taip ištrinsite paskutinę aktyvią eilutę.

Skaityti daugiau: "Excel" VBA kodas, skirtas eilutėms ištrinti pagal kelių ląstelių reikšmę (3 kriterijai)

13 metodas: eilučių, turinčių bet kokias eilutes, šalinimas

Tarkime, norite ištrinti eilutes, kuriose yra bet kokia eilutė, ir tai galite padaryti pagal šį metodą.

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

 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 

Čia, "string" yra lapo pavadinimas, šio duomenų intervalo pirmosios eilutės numeris yra 5 o pradinis stulpelio numeris yra 2

Svetainė Su teiginys leidžia vieną kartą nurodyti objektą arba naudotojo apibrėžtą tipą visai teiginių serijai.

Dėl klaidos tęsti toliau teiginys nurodo, kad įvykus vykdymo laiko klaidai, valdymas pereina į teiginį, einantį po teiginio, kuriame įvyko klaida.

LastRow ir LastColumn grąžinti paskutinę duomenų intervalo eilutę ir stulpelį.

Specialūs langeliai(xlCellTypeConstants, xlTextValues) bus atrinktos eilutės su bet kokiomis teksto reikšmėmis, esančiomis intervale.

➤Spauda F5

Rezultatas :

Vėliau ištrinsite eilutes su bet kokia teksto eilute.

Skaityti daugiau: "Excel" greitieji klavišai eilutėms ištrinti (su papildomais metodais)

14 metodas: eilučių šalinimas pagal datas

Čia ištrinsiu eilutes, turinčias specialią datą 11/12/2021 (mm/dd/rrrr) šiuo metodu naudojant DATEVALUE funkcija .

Žingsnis-01 :

➤Sekti Žingsnis-01 1 metodas

 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 WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

Čia, "Data" yra lapo pavadinimas, šio duomenų intervalo pirmosios eilutės numeris yra 5 o kriterijų stulpelio (kuriame stulpelyje yra datos) numeris yra 3 .

Svetainė Su teiginys leidžia vieną kartą nurodyti objektą arba naudotojo apibrėžtą tipą visai teiginių serijai.

Dėl klaidos tęsti toliau teiginys nurodo, kad įvykus vykdymo laiko klaidai, valdymas pereina į teiginį, einantį po teiginio, kuriame įvyko klaida.

LastRow grąžina paskutinę duomenų intervalo eilutę, o čia FOR ciklas prasidės nuo paskutinės eilutės, kuri yra LastRow arba 6 šiuo atveju ir baigiasi pirmąja eilute.

DATEVALUE konvertuos teksto datą į vertę.

Čia, Union bus grąžinta kelių intervalų, atitinkančių langelius su data, sąjunga. 11/12/2021 , o galiausiai diapazonai bus ištrinti.

➤Spauda F5

Rezultatas :

Po to ištrinsite eilutes su tam tikra data 11/12/2021 .

Susijęs turinys: "Excel" VBA eilutėms su konkrečiais duomenimis ištrinti (9 pavyzdžiai)

Praktikos skyrius

Norėdami patys atlikti praktiką, pateikėme Praktika skirsnį, kaip nurodyta toliau, lape, pavadintame Praktika . Prašome tai padaryti patiems.

Išvada

Šiame straipsnyje bandžiau aprašyti paprasčiausius būdus, kaip naudoti VBA veiksmingai ištrinti eilutes. Tikiuosi, kad jums tai bus naudinga. Jei turite pasiūlymų ar klausimų, nedvejodami pasidalykite jais komentarų skiltyje.

Hugh Westas yra labai patyręs Excel treneris ir analitikas, turintis daugiau nei 10 metų patirtį šioje srityje. Jis yra įgijęs apskaitos ir finansų bakalauro bei verslo administravimo magistro laipsnius. Hugh turi aistrą mokymui ir sukūrė unikalų mokymo metodą, kurį lengva sekti ir suprasti. Jo ekspertinės žinios apie „Excel“ padėjo tūkstančiams studentų ir specialistų visame pasaulyje tobulinti savo įgūdžius ir tobulėti savo karjeroje. Savo tinklaraštyje Hugh dalijasi savo žiniomis su pasauliu, siūlydamas nemokamus „Excel“ vadovėlius ir internetinius mokymus, kad padėtų asmenims ir įmonėms išnaudoti visą savo potencialą.