Jak usunąć wiersz za pomocą VBA (14 sposobów)

  • Udostępnij To
Hugh West

Jeśli szukasz kilku najprostszych sposobów na usunięcie wiersza za pomocą VBA , to jesteś we właściwym miejscu.

Zanurzmy się w głównym artykule.

Pobierz Workbook

VBA Usuń wiersz.xlsm

14 sposobów na usunięcie wiersza za pomocą VBA

Tutaj mam trzy tabele danych, aby pokazać sposoby usuwania wierszy za pomocą VBA Pierwsza tabela zawiera kilka Produkty firmy i ich Rozmiary , Ceny .

Drugi ma trochę Kody produktów i odpowiadające im Rozmiary produktów oraz Ceny

A ostatni zawiera kilka Nazwy projektów oraz ich Daty rozpoczęcia oraz Koszty .

Do stworzenia artykułu użyłem Microsoft Excel 365 wersja, możesz użyć dowolnej innej wersji w zależności od swojej wygody.

Metoda-1: Usuń pojedynczy wiersz używając VBA

Załóżmy, że chcesz usunąć wiersz zawierający Produkt But 1, i aby usunąć ten pojedynczy wiersz, możesz wykonać tę metodę.

Krok-01 :

➤Go to Deweloper Tab>> Visual Basic Opcja

Następnie. Edytor Visual Basic otworzy się.

➤Go to Wkładka Tab>> Moduł Opcja

Po tym, a Moduł zostanie utworzony.

Step-02 :

➤ Napisz następujący kod

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

Tutaj, "Single" jest nazwą arkusza, a Rzędy(7) wybierze numer wiersza.

.EntireRow.Delete usunie cały wiersz 7.

➤Press F5

Wynik :

W ten sposób usuniesz wiersz zawierający Produkt nazwa But 1 .

Read More: Jak usunąć wiersze w programie Excel: 7 metod

Metoda-2: Usuń wiele wierszy używając VBA

Jeśli chcesz usunąć wiele wierszy, takich jak wiersze zawierające Produkt nazwy But1 , But2, oraz But3 to możesz podążać za tym VBA kod.

Krok-01 :

➤Follow Krok-01 z Metoda-1

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

Tutaj zostaną usunięte numery wierszy 13, 10 i 7, a pisząc seryjnie numery wierszy trzeba pisać od ostatniego numeru wiersza do numeru pierwszego wiersza jak w tym kodzie.

W przeciwnym razie po usunięciu pierwszego wiersza jak wiersz 7 pozostałe wiersze poniżej tego wiersza przesuną się o jeden rząd w górę i w ten sposób wiersz 10 będzie wierszem 9, a wiersz 13 będzie wierszem 12. Z tego powodu nie będzie można usunąć właściwych wierszy.

➤Press F5

Wynik :

Następnie usuniesz wiersze zawierające. Produkt nazwy But 1 , But2, oraz But3 .

Read More: Jak usunąć wiele wierszy w programie Excel (3 metody)

Metoda-3: Usuwanie wiersza przez zaznaczenie

Tutaj pokażę sposób usuwania wiersza w odniesieniu do aktywnej komórki tego wiersza.

Krok-01 :

➤Follow Krok-01 z Metoda-1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Spowoduje to usunięcie wiersza posiadającego aktywną komórkę.

➤Zapisz kod.

Step-02 :

➤Wybierz dowolną komórkę wiersza, którą chcesz usunąć ( Tutaj wybrałem komórkę B7 )

➤Go to Deweloper Tab>> Makra Opcja

Następnie. Makro Otworzy się kreator.

➤Wybierz Nazwa makra dltrow3 i nacisnąć Uruchom

Wynik :

Następnie usuniesz wiersz zawierający Produkt nazwa But 1 .

Metoda-4: Usuwanie wszystkich wierszy w zaznaczeniu

Aby usunąć wszystkie wiersze zaznaczenia, możesz zastosować tę metodę.

Krok-01 :

➤Follow Krok-01 z Metoda-1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Spowoduje to usunięcie wszystkich wierszy zaznaczenia.

➤Zapisz kod.

Step-02 :

➤Wybierz zakres wierszy, które chcesz usunąć (tutaj wybrałem zakres B7:D9 )

➤Go to Deweloper Tab>> Makra Opcja

Następnie. Makro Otworzy się kreator.

➤Wybierz Nazwa makra dltrow4 i nacisnąć Uruchom

Wynik :

Następnie usuniesz wiersze zawierające. Produkt nazwy But 1 , Kurtka1, oraz Kurtka2 .

Read More: Jak usunąć wybrane wiersze w programie Excel (8 podejść)

Metoda-5: Usuwanie wiersza, jeśli którakolwiek komórka jest pusta

Tutaj mam pustą komórkę, która jest B9 (usunąłem wartość z tej komórki dla tej metody), oraz używając a VBA kodem usunę wiersz mający B9 komórka.

Krok-01 :

➤Follow Krok-01 z Metoda-1

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

Spowoduje to usunięcie wszystkich wierszy z zakresu "B5:D13" mając dowolną pustą komórkę.

➤Press F5

Wynik :

Następnie będziesz mógł usunąć wiersz zawierający pustą komórkę.

Read More: Jak usunąć puste wiersze w programie Excel (11 metod)

Metoda-6: Usuwanie wiersza, jeśli cały wiersz jest pusty

Tutaj mam pustą komórkę, która jest B9 (usunąłem wartości dla tej metody), oraz pusty wiersz, którym jest Wiersz 12 (usunąłem wartości dla tej metody), oraz używając a VBA kodeks i Funkcja COUNTA Usunę wiersz, który jest pusty.

Krok-01 :

➤Follow Krok-01 z 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" jest zakresem danych, a DLA pętla będzie działać dla każdej komórki w tym zakresie.

CountA(cell.EntireRow) zwróci liczbę niepustych komórek i gdy stanie się ona równa 0, wiersz zostanie usunięty.

➤Press F5

Wynik :

Po tym będziesz mógł usunąć pusty wiersz, ale nie usunie on żadnego wiersza, który nie ma wszystkich komórek tego wiersza pustych.

Read More: Jak używać VBA do usuwania pustych wierszy w Excelu

Metoda-7: Usuwanie co n-tego wiersza

Możesz usunąć każdy n-ty wiersz (w tym przypadku każdy trzeci wiersz), postępując zgodnie z tą metodą.

Krok-01 :

➤Follow Krok-01 z 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" jest zakresem danych, a rc zwróci całkowity numer wiersza w tym zakresie, który wynosi 9 .

Tutaj DLA pętla rozpocznie się od ostatniego wiersza, którym jest rc lub 9 w tym przypadku i kończy się na pierwszym rzędzie.

Krok -3. pomoże usunąć każdy 3. wiersz w tym zakresie.

➤Press F5

Wynik :

Następnie usuniesz wiersze zawierające. Produkt nazwy But 1 , But2, oraz But3 .

Read More: Jak usunąć co n-ty wiersz w Excelu (Najprostsze 6 sposobów)

Podobne Lektury:

  • Jak usunąć wybrane wiersze za pomocą programu Excel VBA (przewodnik krok po kroku)
  • Usuń nieużywane wiersze w Excelu (8 prostych sposobów)
  • Jak usunąć ukryte wiersze w programie Excel (3 metody)
  • Usuń nieskończone wiersze w Excelu (5 prostych sposobów)
  • Jak usunąć wiersze w Excelu, które trwają wiecznie (4 proste sposoby)

Metoda-8: Usuwanie wiersza na podstawie wartości komórki

W tej metodzie usunę wiersz posiadający określoną wartość Koszula 2 .

Krok-01 :

➤Follow Krok-01 z 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" jest zakresem danych, a DLA pętla będzie działać dla każdej komórki w tym zakresie.

Jeśli którakolwiek komórka wiersza zawiera wartość "Koszula 2" wówczas wiersz zostanie usunięty.

➤Press F5

Wynik :

W ten sposób usuniesz wiersz zawierający Produkt nazwa Koszula 2 .

Read More: Makro VBA do usuwania wiersza, jeśli komórka zawiera wartość w Excelu (2 metody)

Metoda-9: Usuwanie zduplikowanych wierszy

Tutaj mam dwa wiersze mające Kod produktu 97375 i dlatego chcę usunąć jeden z tych wierszy, które są oznaczone czerwoną ramką poniżej.

Krok-01 :

➤Follow Krok-01 z Metoda-1

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

Tutaj, "B5:D13" jest zakresem danych, a Kolumny:=1 oznacza, że będzie szukać zduplikowanych wartości tylko w jednej kolumnie, która jest kolumną początkową Kolumna B ale jeśli chcesz szukać również w innych kolumnach, możesz użyć tego numeru zgodnie z Twoimi potrzebami.

➤Press F5

Wynik :

Następnie będziesz mógł usunąć wiersz, który jest podobny do innego wiersza.

Read More: Jak usunąć duplikaty wierszy w Excelu za pomocą VBA (8 skutecznych sposobów)

Metoda-10: Usuwanie wierszy w tabeli

Załóżmy, że masz następującą tabelę, której nazwa to Tabela1. a teraz chcesz usunąć Wiersz numer 6 tej tabeli. Aby to zrobić, możesz wykonać tę metodę.

Krok-01 :

➤Follow Krok-01 z Metoda-1

 Sub dltrow10() ActiveWorkbook.Worksheets("Tabela").ListObjects("Tabela1").ListRows(6).Delete End Sub 

Tutaj, "Tabela" jest nazwą arkusza, "Tabela1" jest nazwą tabeli, a 6 jest numerem wiersza tej tabeli, który chcesz usunąć.

➤Press F5

Wynik :

W ten sposób usuniesz swój pożądany wiersz tej tabeli.

Read More: Jak usunąć zduplikowane wiersze na podstawie jednej kolumny za pomocą programu Excel VBA

Metoda-11: Usuwanie widocznych wierszy po filtrowaniu

Tutaj mam tabelę danych, która jest filtrowana przez. Cena kolumna dla wartości większych niż $1,500.00 i chcę usunąć wszystkie widoczne wiersze po filtrowaniu.

Krok-01 :

➤Follow Krok-01 z Metoda-1

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

Tutaj, "B5:D13" jest zakresem danych.

➤Press F5

Teraz wszystkie widoczne wiersze po filtrowaniu zostaną usunięte. Możesz teraz przywrócić ukryte wiersze, wybierając opcję Filtr podpisać się w Cena kolumna.

➤ Kliknij na Wybierz wszystko opcja

➤Press OK

Wynik :

W końcu otrzymasz ukryte wiersze z powrotem w tabeli danych.

Read More: Jak filtrować i usuwać wiersze za pomocą VBA w Excelu (2 metody)

Metoda-12: Usuwanie wiersza na podstawie ostatniej aktywnej komórki

Tutaj moją ostatnią aktywną komórką jest komórka B13 i chcę to usunąć mając ostatnią aktywną komórkę następującej tabeli danych.

Krok-01 :

➤Follow Krok-01 z Metoda-1

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

Tutaj, 2 oznacza Kolumna B na którym mam swoją aktywną komórkę, można zmienić numer w zależności od potrzeb.

➤Press F5

Wynik :

W ten sposób usuniesz swój ostatni aktywny wiersz.

Read More: Excel VBA Kod do usuwania wierszy na podstawie wartości wielu komórek (3 kryteria)

Metoda-13: Usuwanie wierszy posiadających dowolne ciągi

Załóżmy, że chcesz usunąć wiersze mające dowolny ciąg, i aby to zrobić, możesz postępować zgodnie z tą metodą.

Krok-01 :

➤Follow Krok-01 z 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 

Tutaj, "string" jest nazwą arkusza, numerem pierwszego wiersza tego zakresu danych jest 5 a numer początkowy kolumny to 2

Na stronie Z Instrukcja pozwala określić obiekt lub typ zdefiniowany przez użytkownika raz dla całej serii poleceń.

On Error Resume Next Instrukcja określa, że w przypadku wystąpienia błędu run-time, sterowanie przechodzi do instrukcji następującej po instrukcji, w której wystąpił błąd.

LastRow oraz LastColumn zwraca ostatni wiersz i kolumnę zakresu danych.

SpecialCells(xlCellTypeConstants, xlTextValues) wybierze wiersze posiadające dowolne wartości tekstowe w zakresie.

➤Press F5

Wynik :

Następnie usuniesz wiersze mające dowolny ciąg tekstowy.

Read More: Skrót w Excelu do usuwania wierszy (z dodatkowymi technikami)

Metoda-14: Usuwanie wiersza na podstawie dat

Tutaj usunę wiersze posiadające specjalną datę 11/12/2021 (mm/dd/rrrr) w tej metodzie przy użyciu Funkcja DATEVALUE .

Krok-01 :

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

Tutaj, "Data" jest nazwą arkusza, numerem pierwszego wiersza tego zakresu danych jest 5 a numer kolumny kryteriów (która kolumna ma daty) to 3 .

Na stronie Z Instrukcja pozwala określić obiekt lub typ zdefiniowany przez użytkownika raz dla całej serii poleceń.

On Error Resume Next Instrukcja określa, że w przypadku wystąpienia błędu run-time, sterowanie przechodzi do instrukcji następującej po instrukcji, w której wystąpił błąd.

LastRow zwraca ostatni wiersz zakresu danych, a tutaj DLA pętla rozpocznie się od ostatniego wiersza, którym jest LastRow lub 6 w tym przypadku, i kończy się na pierwszym rzędzie.

DATEVALUE skonwertuje datę tekstową na wartość.

Tutaj, Unia zwróci unię wielu zakresów odpowiadających komórkom posiadającym datę 11/12/2021 , a na koniec zakresy zostaną usunięte.

➤Press F5

Wynik :

Następnie usuniesz wiersze mające określoną datę 11/12/2021 .

Related Content: Excel VBA do usuwania wierszy z określonymi danymi (9 przykładów)

Część ćwiczeniowa

Do samodzielnego wykonywania ćwiczeń udostępniliśmy Praktyka sekcja jak poniżej w arkuszu o nazwie Praktyka . Proszę, zrób to sam.

Wniosek

W tym artykule starałem się omówić najprostsze sposoby wykorzystania VBA skutecznie do usuwania rzędów. Mam nadzieję, że uznasz to za przydatne. Jeśli masz jakieś sugestie lub pytania, zachęcamy do podzielenia się nimi w sekcji komentarzy.

Hugh West jest bardzo doświadczonym trenerem i analitykiem Excela z ponad 10-letnim doświadczeniem w branży. Posiada tytuł licencjata w dziedzinie rachunkowości i finansów oraz tytuł magistra administracji biznesowej. Hugh ma pasję do nauczania i opracował unikalne podejście do nauczania, które jest łatwe do naśladowania i zrozumienia. Jego specjalistyczna wiedza na temat programu Excel pomogła tysiącom studentów i profesjonalistów na całym świecie doskonalić swoje umiejętności i osiągać doskonałe wyniki w karierze. Za pośrednictwem swojego bloga Hugh dzieli się swoją wiedzą ze światem, oferując bezpłatne samouczki programu Excel i szkolenia online, aby pomóc osobom indywidualnym i firmom w pełni wykorzystać swój potencjał.