Sorok törlése vagy beszúrása a cella értéke alapján

Ez az oktatóanyag bemutatja, hogyan lehet sorokat törölni vagy beszúrni a cellaértékek alapján.

Sor törlése a cella értéke alapján

Ez végigmegy egy tartományon, és törli a sorokat, ha az A oszlop azt mondja: „törlés”.

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Változók deklarálásaDim LastRow Long, FirstRow As LongHalvány sor, amilyen hosszúActiveSheet segítségével„Határozza meg az első és az utolsó sortElső sor = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sorok áthidalása (alulról felfelé)Sorhoz = Utolsó sor az első sorhoz -1. lépésHa .Range ("A" és sor) .Value = "delete" Akkor.Range ("A" és sor) .EntireRow.DeleteVége HaKövetkező sorVége ezzelEnd Sub

A ciklust az alsó sorral kell kezdenünk, mert egy sor törlése eltolja az adatokat, és kihagyja a sorokat, ha felülről lefelé teker.

Azt is vegye figyelembe, hogy az utolsó sor kézi bevitele helyett az utoljára használt sort számoljuk ki.

Sor törlése - szűrő alapján

Az előző példában végigcsempésztük a sorokat, minden olyan sort törölve, amely megfelel a feltételeknek. Alternatív megoldásként használhatjuk az Excel automatikus szűrőjét, hogy bizonyos feltételek alapján szűrjük a sorokat, majd töröljük a látható sorokat:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows ()'Deklarálja a ws változótDim ws munkalapkéntÁllítsa be ws = ActiveSheet'Állítsa vissza a meglévő szűrőketHiba esetén Folytassa a következőtws.ShowAllDataGoTo 0 hiba esetén'Szűrő alkalmazásaws.Range ("a1: d100"). Automatikus szűrő mező: = 1, Feltételek1: = "törlés"'Sorok törléseApplication.DisplayAlerts = Hamisws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .DeleteApplication.DisplayAlerts = Igaz'Törölje a szűrőtHiba esetén Folytassa a következőtws.ShowAllDataGoTo 0 hiba eseténEnd Sub

Sor törlése cellakritériumok alapján

Ez végigmegy egy tartományon, és törli a sorokat, ha az A oszlop cella megfelel bizonyos feltételeknek (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Változók deklarálásaDim LastRow Long, FirstRow As LongHalvány sor, amilyen hosszúActiveSheet segítségével„Határozza meg az első és az utolsó sortElső sor = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sorok áthidalása (alulról felfelé)Sorhoz = Utolsó sor az első sorhoz -1. lépésHa .Range ("A" és sor) .Érték <0 Akkor.Range ("A" és sor) .EntireRow.DeleteVége HaKövetkező sorVége ezzelEnd Sub

VBA programozás | A kódgenerátor működik az Ön számára!

Törölje a sort, ha a cella üres

Ez végigmegy egy tartományon, és törli a sort, ha az A oszlop cellája üres:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Változók deklarálásaDim LastRow Long, FirstRow As LongHalvány sor, amilyen hosszúActiveSheet segítségével'Határozza meg az első és az utolsó sortElső sor = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .RowLoop sorok (alulról felfelé)Sorhoz = Utolsó sor az első sorhoz -1. lépésHa .Range ("A" & Sor) .Value = "" Akkor.Range ("A" és sor) .EntireRow.DeleteVége HaKövetkező sorVége ezzelEnd Sub

Üres sor törlése

Alternatív megoldásként, ha törölni szeretne egy sort, ha az egész sor üres (kattintson a linkre egy kicsit más módszerért), használja ezt a kódot:

1234567891011121314151617181920 Sub DeleteBlankRows ()'Változók deklarálásaDim LastRow Long, FirstRow As LongHalvány sor, amilyen hosszúActiveSheet segítségével'Határozza meg az első és az utolsó sortElső sor = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .RowLoop sorok (alulról felfelé)Sorhoz = Utolsó sor az első sorhoz -1. lépésHa WorksheetFunction.CountA (.Rows (Row)) = 0 Akkor.Sorok (sor) .EntireRow.DeleteVége HaKövetkező sorVége ezzelEnd Sub

Törölje a sort, ha a cella értéket tartalmaz

Ez végigmegy egy tartományon, és törli a sort, ha az A oszlop cellája nem üres:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Változók deklarálásaDim LastRow Long, FirstRow As LongHalvány sor, amilyen hosszúActiveSheet segítségével„Határozza meg az első és az utolsó sortElső sor = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .RowLoop sorok (alulról felfelé)Sorhoz = Utolsó sor az első sorhoz -1. lépésHa .Range ("A" & Sor) .Érték "" Akkor.Range ("A" és sor) .EntireRow.DeleteVége HaKövetkező sorVége ezzelEnd Sub

Unod már a VBA kódpéldák keresését? Próbálja ki az AutoMacro -t!

Sor beszúrása a cella értéke alapján

Ez végigmegy egy tartományon, és sorokat szúr be, ha a sor egy adott cellája azt mondja: „beszúrás”:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()'Változók deklarálásaDim LastRow Long, FirstRow As LongHalvány sor, amilyen hosszúActiveSheet segítségével„Határozza meg az első és az utolsó sortElső sor = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Sorok áthidalása (alulról felfelé)Sorhoz = Utolsó sor az első sorhoz -1. lépésHa .Range ("A" és sor) .Value = "insert" Then.Range ("A" és sor) .EntireRow.InsertVége HaKövetkező sorVége ezzelEnd Sub

Segít a fejlesztés a helyszínen, megosztva az oldalt a barátaiddal

wave wave wave wave wave