Turinys
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ę.xlsm14 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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 iš 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.