Kā dzēst rindu, izmantojot VBA (14 veidi)

  • Dalīties Ar Šo
Hugh West

Ja meklējat dažus no vienkāršākajiem veidiem, kā dzēst rindu, izmantojot VBA , tad esat īstajā vietā.

Ļaujiet ienirt galvenajā rakstā.

Lejupielādēt darbgrāmatu

VBA Dzēst rindu.xlsm

14 veidi, kā dzēst rindu, izmantojot VBA

Šeit man ir trīs datu tabulas, lai parādītu, kā dzēst rindas, izmantojot VBA . Pirmajā tabulā ir dažas Produkti uzņēmuma un to Izmēri , Cenas .

Otrajā ir daži Produktu kodi un to atbilstošie Produktu izmēri un Cenas

Un pēdējā no tiem ir daži Projektu nosaukumi un to attiecīgie Sākuma datumi un Izmaksas .

Lai izveidotu rakstu, esmu izmantojis Microsoft Excel 365 versiju, varat izmantot jebkuru citu versiju atbilstoši savām vajadzībām.

1. metode: vienas rindas dzēšana, izmantojot VBA

Pieņemsim, ka vēlaties dzēst rindu, kurā ir Produkts 1 apavi, un lai dzēstu šo vienu rindu, varat izmantot šo metodi.

Solis-01 :

➤Iet uz Izstrādātājs Cilne>> Visual Basic Iespēja

Tad Visual Basic redaktors atvērsies.

➤Iet uz Ievietot Cilne>> Modulis Iespēja

Pēc tam Modulis tiks izveidots.

Solis-02 :

➤Uzdodiet šādu kodu

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

Šeit, "Single" ir darblapas nosaukums, un Rindas (7) atlasīs rindas numuru.

.EntireRow.Delete izdzēsīs visu rindu 7.

➤Press F5

Rezultāts :

Šādā veidā dzēsīsiet rindu, kurā ir Produkts nosaukums Apavi 1 .

Lasīt vairāk: Kā dzēst rindas programmā Excel: 7 metodes

2. metode: Vairāku rindu dzēšana, izmantojot VBA

Ja vēlaties dzēst vairākas rindas, piemēram, rindas ar Produkts vārdi Apavi1 , Apavi2, un Apavi3 , tad varat sekot šim VBA kods.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

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

Šeit tiks dzēsti rindas numuri 13, 10 un 7, un, rakstot rindas numurus pēc kārtas, ir jāraksta no pēdējās rindas numura līdz pirmās rindas numuram, piemēram, šāds kods.

Pretējā gadījumā pēc pirmās rindas, piemēram, 7. rindas, dzēšanas pārējās rindas zem šīs rindas pārvietosies par vienu rindu uz augšu, tādējādi 10. rinda būs 9. rinda, bet 13. rinda būs 12. rinda. Šī iemesla dēļ nevarēsiet dzēst pareizās rindas.

➤Press F5

Rezultāts :

Pēc tam dzēsīsiet rindas, kurās ir Produkts vārdi Apavi 1 , Apavi2, un Apavi3 .

Lasīt vairāk: Kā dzēst vairākas rindas programmā Excel (3 metodes)

3. metode: rindas dzēšana, izvēloties

Šeit es parādīšu veidu, kā dzēst rindu attiecībā uz šīs rindas aktīvo šūnu.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Tā dzēsīs rindu, kurā ir aktīva šūna.

➤Kodu saglabājiet.

Solis-02 :

➤Izvēlieties jebkuru rindas šūnu, kuru vēlaties dzēst ( Šeit es esmu izvēlējies šūnu B7 )

➤Iet uz Izstrādātājs Cilne>> Makroprocesori Iespēja

Pēc tam Makro Atvērsies vednis.

➤Izvēlieties Makro nosaukums dltrow3 un nospiediet Palaist

Rezultāts :

Pēc tam dzēsīsiet rindu, kurā ir Produkts nosaukums Apavi 1 .

4. metode: visu atlases rindu dzēšana

Lai dzēstu visas atlases rindas, varat izmantot šo metodi.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Tas dzēsīs visas atlases rindas.

➤Kodu saglabājiet.

Solis-02 :

➤Izvēlieties rindu diapazonu, kuru vēlaties dzēst (šeit es esmu izvēlējies diapazonu B7:D9 )

➤Iet uz Izstrādātājs Cilne>> Makroprocesori Iespēja

Pēc tam Makro Atvērsies vednis.

➤Izvēlieties Makro nosaukums dltrow4 un nospiediet Palaist

Rezultāts :

Pēc tam dzēsīsiet rindas, kurās ir Produkts vārdi Apavi 1 , Jaka1, un Jaka2 .

Lasīt vairāk: Kā dzēst atlasītās rindas programmā Excel (8 pieejas)

5. metode: rindas dzēšana, ja kāda šūna ir tukša

Šeit man ir tukša šūna, kas ir B9 (šai metodei esmu noņēmis vērtību no šīs šūnas), un, izmantojot a VBA kods Es dzēšu rindu, kurā ir B9 šūna.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

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

Tiks dzēstas visas rindas diapazonā "B5:D13" ar jebkuru tukšu šūnu.

➤Press F5

Rezultāts :

Pēc tam varēsiet dzēst rindu, kurā ir tukšā šūna.

Lasīt vairāk: Kā noņemt tukšās rindas programmā Excel (11 metodes)

6. metode: rindas dzēšana, ja visa rinda ir tukša

Šeit man ir tukša šūna, kas ir B9 (esmu izdzēsis šīs metodes vērtības), un tukša rinda ir 12. rinda (esmu izdzēsis šīs metodes vērtības), un, izmantojot a VBA kods un COUNTA funkcija Es dzēšu tukšo rindu.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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" ir datu diapazons un PAR cilpa darbosies katrai šūnas šādā diapazonā.

CountA(cell.EntireRow) tiks atgriezts to šūnu skaits, kas nav tukšas, un, kad tas būs 0, rinda tiks dzēsta.

➤Press F5

Rezultāts :

Pēc tam varēsiet izdzēst tukšo rindu, taču netiks izdzēsta neviena rinda, kurā visas šīs rindas šūnas nebūs tukšas.

Lasīt vairāk: Kā lietot VBA, lai dzēstu tukšas rindas programmā Excel

7. metode: Katras n-tās rindas dzēšana

Izmantojot šo metodi, varat dzēst katru n-to rindu (šajā gadījumā katru 3. rindu).

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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" ir datu diapazons un rc atgriezīs kopējo rindu skaitu šajā diapazonā, kas ir 9 .

Šajā gadījumā PAR cilpa sāksies no pēdējās rindas, kas ir rc vai 9 šajā gadījumā un beidzas ar pirmo rindu.

-3. solis palīdzēs dzēst katru 3. rindu šajā diapazonā.

➤Press F5

Rezultāts :

Pēc tam dzēsīsiet rindas, kurās ir Produkts vārdi Apavi 1 , Apavi2, un Apavi3 .

Lasīt vairāk: Kā dzēst katru n-to rindu programmā Excel (vienkāršākie 6 veidi)

Līdzīgi lasījumi:

  • Kā dzēst atlasītās rindas ar Excel VBA (soli pa solim)
  • Neizmantoto rindu dzēšana programmā Excel (8 vienkārši veidi)
  • Kā dzēst slēptās rindas programmā Excel (3 metodes)
  • Bezgalīgu rindu dzēšana programmā Excel (5 vienkārši veidi)
  • Kā programmā Excel dzēst rindas, kas turpinās mūžīgi (4 vienkārši veidi)

8. metode: rindu dzēšana, pamatojoties uz šūnas vērtību

Izmantojot šo metodi, es dzēšu rindu ar noteiktu vērtību. Krekls 2 .

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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 End Sub 

"B5:D13" ir datu diapazons un PAR cilpa darbosies katrai šūnas šādā diapazonā.

Ja jebkurā rindas šūnā ir vērtība "Krekls 2" tad rinda tiks dzēsta.

➤Press F5

Rezultāts :

Šādā veidā dzēsīsiet rindu, kurā ir Produkts nosaukums Krekls 2 .

Lasīt vairāk: VBA makro programma, lai dzēstu rindu, ja Excel šūnā ir vērtība (2 metodes)

9. metode: Dublikātu rindu dzēšana

Šeit man ir divas rindas ar Produkta kods 97375 un es gribu dzēst vienu no šīm rindām, kas turpmāk ir atzīmētas ar sarkanu lodziņu.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

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

Šeit, "B5:D13" ir datu diapazons un Kolonnas:=1 tas nozīmē, ka vērtības tiks meklētas tikai vienā sākumstilpē, kas ir sākuma sleja. B sleja bet, ja vēlaties meklēt arī citās slejās, varat izmantot šo numuru atbilstoši savām vajadzībām.

➤Press F5

Rezultāts :

Pēc tam varēsiet dzēst rindu, kas ir līdzīga citai rindai.

Lasīt vairāk: Kā dzēst dublētās rindas programmā Excel, izmantojot VBA (8 efektīvi veidi)

10. metode: Tabulas rindu dzēšana

Pieņemsim, ka jums ir šāda tabula, kuras nosaukums ir tabula1 un tagad vēlaties izdzēst šīs tabulas 6. rindu. Lai to izdarītu, varat izmantot šo metodi.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

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

Šeit, "Tabula" ir lapas nosaukums, "Tabula1" ir tabulas nosaukums un 6 ir šīs tabulas rindas numurs, kuru vēlaties dzēst.

➤Press F5

Rezultāts :

Šādā veidā dzēsīsiet vēlamo šīs tabulas rindu.

Lasīt vairāk: Kā noņemt dublējošās rindas, pamatojoties uz vienu kolonnu, izmantojot Excel VBA

11. metode: Redzamo rindu dzēšana pēc filtrēšanas

Šeit man ir datu tabula, kas ir filtrēta pēc Cena slejā vērtībām, kas ir lielākas par $1,500.00 un pēc filtrēšanas vēlos dzēst visas redzamās rindas.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

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

Šeit, "B5:D13" ir datu diapazons.

➤Press F5

Tagad visas redzamās rindas pēc filtrēšanas tiks dzēstas. Tagad varat atgriezt atpakaļ slēptās rindas, izvēloties Filtrs zīme Cena sleja.

➤Noklikšķiniet uz Atlasiet visus iespēja

➤Press LABI

Rezultāts :

Visbeidzot, datu tabulā tiks atgrieztas slēptās rindas.

Lasīt vairāk: Kā filtrēt un dzēst rindas ar VBA programmā Excel (2 metodes)

12. metode: rindas dzēšana, pamatojoties uz pēdējo aktīvo šūnu

Šeit mana pēdējā aktīvā šūna ir šūna B13 un es gribu dzēst šo, kam ir pēdējā aktīvā šūna nākamajā datu tabulā.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

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

Šeit, 2 nozīmē B sleja kurā ir mana aktīvā šūna, varat mainīt numuru atbilstoši savām vajadzībām.

➤Press F5

Rezultāts :

Šādā veidā tiks dzēsta pēdējā aktīvā rinda.

Lasīt vairāk: Excel VBA kods rindu dzēšanai, pamatojoties uz vairāku šūnu vērtību (3 kritēriji)

13. metode: rindu, kurās ir jebkuras virknes, dzēšana

Pieņemsim, ka vēlaties izdzēst rindas ar jebkuru virkni, un lai to izdarītu, varat izmantot šo metodi.

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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),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 

Šeit, "string" ir lapas nosaukums, šā datu diapazona pirmās rindas numurs ir 5 un sākuma kolonnas numurs ir 2

Portāls Ar izteikums ļauj vienreiz norādīt objektu vai lietotāja definētu tipu visai izteikumu sērijai.

Kļūdas gadījumā atsākt Nākamais paziņojums nosaka, ka, ja rodas izpildes laika kļūda, vadība tiek nodota paziņojumam, kas seko paziņojumam, kurā radusies kļūda.

LastRow un LastColumn atdod datu diapazona pēdējo rindu un kolonnu.

Īpašās šūnas(xlCellTypeConstants, xlTextValues) atlasīs rindas, kurās ir jebkuras teksta vērtības diapazonā.

➤Press F5

Rezultāts :

Pēc tam dzēsīsiet rindas, kurās ir teksta virkne.

Lasīt vairāk: Excel saīsnes rindu dzēšanai (ar bonusa tehnikām)

14. metode: rindu dzēšana, pamatojoties uz datumiem

Šeit es dzēšu rindas, kurām ir īpašs datums. 11/12/2021 (mm/dd/gggggg) šajā metodē, izmantojot DATEVALUE funkcija .

Solis-01 :

➤ Sekot Solis-01 no 1. metode

 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 

Šeit, "Datums" ir lapas nosaukums, šā datu diapazona pirmās rindas numurs ir 5 un kritēriju kolonnas (kurā kolonnā ir datumi) numurs ir 3 .

Portāls Ar izteikums ļauj vienreiz norādīt objektu vai lietotāja definētu tipu visai izteikumu sērijai.

Kļūdas gadījumā atsākt Nākamais paziņojums nosaka, ka, ja rodas izpildes laika kļūda, vadība tiek nodota paziņojumam, kas seko paziņojumam, kurā radusies kļūda.

LastRow atgriež datu diapazona pēdējo rindu, un šajā gadījumā PAR cilpa sāksies no pēdējās rindas, kas ir LastRow vai 6 šajā gadījumā un beidzas ar pirmo rindu.

DATEVALUE konvertēs teksta datumu vērtībā.

Šeit, Union atgriezīs vairāku diapazonu apvienojumu, kas atbilst šūnām ar datumu. 11/12/2021 , un visbeidzot diapazoni tiks dzēsti.

➤Press F5

Rezultāts :

Pēc tam dzēsīsit rindas, kurām ir noteikts datums. 11/12/2021 .

Saistīts saturs: Excel VBA, lai dzēstu rindas ar konkrētiem datiem (9 piemēri)

Prakses sadaļa

Prakses veikšanai mēs esam nodrošinājuši Prakse sadaļu, piemēram, zemāk lapā ar nosaukumu Prakse . Lūdzu, dariet to pats.

Secinājums

Šajā rakstā es centos aprakstīt vienkāršākos veidus, kā izmantot VBA efektīvi dzēst rindas. Ceru, ka jums tas būs noderīgi. Ja jums ir kādi ieteikumi vai jautājumi, nekautrējieties dalīties ar tiem komentāru sadaļā.

Hjū Vests ir ļoti pieredzējis Excel treneris un analītiķis ar vairāk nekā 10 gadu pieredzi šajā nozarē. Viņam ir bakalaura grāds grāmatvedībā un finansēs un maģistra grāds uzņēmējdarbības vadībā. Hjū aizraujas ar mācīšanu, un viņš ir izstrādājis unikālu mācīšanas pieeju, kas ir viegli izpildāma un saprotama. Viņa ekspertu zināšanas programmā Excel ir palīdzējušas tūkstošiem studentu un profesionāļu visā pasaulē uzlabot savas prasmes un izcelties karjerā. Izmantojot savu emuāru, Hjū dalās savās zināšanās ar pasauli, piedāvājot bezmaksas Excel apmācības un tiešsaistes apmācību, lai palīdzētu personām un uzņēmumiem pilnībā izmantot savu potenciālu.