Usuń lub wstaw wiersze na podstawie wartości komórki

Ten samouczek pokaże, jak usuwać lub wstawiać wiersze na podstawie wartości komórek.

Usuń wiersz na podstawie wartości komórki

Spowoduje to przejście przez zakres i usunięcie wierszy, jeśli kolumna A mówi „usuń”.

1234567891011121314151617181920 Sub UsuńRowsBasedonCellValue()„Zadeklaruj zmienne”Dim LastRow tak długo, FirstRow tak długoCiemny rząd tak długoZ ActiveSheet„Zdefiniuj pierwszy i ostatni wiersz”Pierwszy rząd = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Zapętlaj wiersze (od dołu do góry)Dla rzędu = Ostatni rząd do pierwszego rzędu Krok -1If .Range("A" & Row).Value = "usuń" Then.Range("A" i wiersz).Cały wiersz.UsuńZakończ, jeśliNastępny wierszKończyć zNapis końcowy

Musimy rozpocząć pętlę od dolnego wiersza, ponieważ usunięcie wiersza spowoduje przesunięcie danych, pomijając wiersze, jeśli zapętlisz się z góry na dół.

Zauważ również, że zamiast ręcznie wpisywać ostatni wiersz, obliczamy ostatnio używany wiersz.

Usuń wiersz - na podstawie filtra

W poprzednim przykładzie zapętliliśmy wiersze, usuwając każdy wiersz spełniający kryteria. Alternatywnie możemy użyć Autofiltru Excela do filtrowania wierszy na podstawie niektórych kryteriów, a następnie usunięcia widocznych wierszy:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows()'Zadeklaruj zmienną wsDim ws As WorksheetUstaw ws = Aktywny arkusz'Zresetuj istniejące filtryPrzy błędzie Wznów Dalejws. Pokaż wszystkie daneW przypadku błędu Przejdź do 0'Nałóż filtrws.Range("a1:d100").AutoFilter Field:=1, Criteria1:="usuń"„Usuń wiersze”Application.DisplayAlerts = Falsews.Range("a1:d100").SpecialCells(xlCellTypeVisible).UsuńApplication.DisplayAlerts = Prawda'Czysty filtrPrzy błędzie Wznów Dalejws. Pokaż wszystkie daneW przypadku błędu Przejdź do 0Napis końcowy

Usuń wiersz na podstawie kryteriów komórki

Spowoduje to przejście przez zakres, usuwając wiersze, jeśli komórka w kolumnie A spełnia określone kryteria (< 0):

1234567891011121314151617181920 Sub UsuńRowsBasedonCellValue()„Zadeklaruj zmienne”Dim LastRow tak długo, FirstRow tak długoCiemny rząd tak długoZ ActiveSheet„Zdefiniuj pierwszy i ostatni wiersz”Pierwszy rząd = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Zapętlaj wiersze (od dołu do góry)Dla rzędu = Ostatni rząd do pierwszego rzędu Krok -1Jeśli .Range("A" i wiersz).Value < 0 Wtedy.Range("A" i wiersz).Cały wiersz.UsuńZakończ, jeśliNastępny wierszKończyć zNapis końcowy

Programowanie VBA | Generator kodu działa dla Ciebie!

Usuń wiersz, jeśli komórka jest pusta

Spowoduje to przejście przez zakres, usuwając wiersz, jeśli komórka w kolumnie A jest pusta:

1234567891011121314151617181920 Sub UsuńRowsBasedonCellValue()„Zadeklaruj zmienne”Dim LastRow tak długo, FirstRow tak długoCiemny rząd tak długoZ ActiveSheet„Zdefiniuj pierwszy i ostatni wiersz”Pierwszy rząd = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Zapętlaj wiersze (od dołu do góry)Dla rzędu = Ostatni rząd do pierwszego rzędu Krok -1If .Range("A" & Row).Value = "" Then.Range("A" i wiersz).Cały wiersz.UsuńZakończ, jeśliNastępny wierszKończyć zNapis końcowy

Usuń pusty wiersz

Alternatywnie, jeśli chcesz usunąć wiersz, jeśli cały wiersz jest pusty (kliknij link, aby uzyskać nieco inną metodę), możesz użyć tego kodu:

1234567891011121314151617181920 Sub Usuń puste wiersze()„Zadeklaruj zmienne”Dim LastRow tak długo, FirstRow tak długoCiemny rząd tak długoZ ActiveSheet„Zdefiniuj pierwszy i ostatni wiersz”Pierwszy rząd = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Zapętlaj wiersze (od dołu do góry)Dla rzędu = Ostatni rząd do pierwszego rzędu Krok -1Jeśli WorksheetFunction.CountA(.Rows(Row)) = 0 Wtedy.Wiersze(wiersz).Cały wiersz.UsuńZakończ, jeśliNastępny wierszKończyć zNapis końcowy

Usuń wiersz, jeśli komórka zawiera wartość

Spowoduje to przejście przez zakres, usuwając wiersz, jeśli komórka w kolumnie A nie jest pusta:

1234567891011121314151617181920 Sub UsuńRowsBasedonCellValue()„Zadeklaruj zmienne”Dim LastRow tak długo, FirstRow tak długoCiemny rząd tak długoZ ActiveSheet„Zdefiniuj pierwszy i ostatni wiersz”Pierwszy rząd = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Zapętlaj wiersze (od dołu do góry)Dla rzędu = Ostatni rząd do pierwszego rzędu Krok -1If .Range("A" i wiersz).Value "" Wtedy.Range("A" i wiersz).Cały wiersz.UsuńZakończ, jeśliNastępny wierszKończyć zNapis końcowy

Masz dość wyszukiwania przykładów kodu VBA? Wypróbuj Automakro!

Wstaw wiersz na podstawie wartości komórki

Spowoduje to przejście przez zakres, wstawiając wiersze, jeśli dana komórka w tym wierszu mówi „wstaw”:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue()„Zadeklaruj zmienne”Dim LastRow tak długo, FirstRow tak długoCiemny rząd tak długoZ ActiveSheet„Zdefiniuj pierwszy i ostatni wiersz”Pierwszy rząd = 1LastRow = .UsedRange.Rows(.UsedRange.Rows.Count).Row'Zapętlaj wiersze (od dołu do góry)Dla rzędu = Ostatni rząd do pierwszego rzędu Krok -1If .Range("A" & Row).Value = "insert" Then.Range("A" i wiersz).EntireRow.InsertZakończ, jeśliNastępny wierszKończyć zNapis końcowy
wave wave wave wave wave