Ștergeți sau inserați rânduri pe baza valorii celulei

Acest tutorial va arăta cum să ștergeți sau să inserați rânduri pe baza valorilor celulei.

Ștergeți rândul pe baza valorii celulei

Aceasta va parcurge un interval și va șterge rândurile dacă coloana A spune „șterge”.

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Declarați variabileleDim LastRow As Long, FirstRow As LongDim Row As LongCu ActiveSheet„Definiți primul și ultimul rândFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Buclă prin rânduri (de jos în sus)Pentru Row = LastRow To FirstRow Pasul -1Dacă .Range ("A" & Row) .Value = "șterge" Atunci.Range („A” & Row) .EntireRow.EleteEnd IfUrmătorul rândSe termina cuSfârșitul Sub

Trebuie să începem bucla cu rândul de jos, deoarece ștergerea unui rând va schimba datele, omitând rândurile dacă faceți o buclă de sus în jos.

De asemenea, observați că, în loc să introduceți manual ultimul rând, calculăm ultimul rând folosit.

Șterge rândul - pe baza filtrului

În exemplul anterior, am parcurs rândurile, ștergând fiecare rând care îndeplinește criteriile. Alternativ, putem folosi Filtrul automat Excel pentru a filtra rândurile pe baza unor criterii și apoi a șterge rândurile vizibile:

12345678910111213141516171819202122232425 Sub FilterAndDeleteRows ()'Declarați variabilă wsDim ws Ca foaie de lucruSetați ws = ActiveSheet'Resetați filtrele existenteLa eroare Reluați în continuarews.ShowAllDataLa eroare GoTo 0'Aplica filtruws.Range ("a1: d100"). Câmpul AutoFilter: = 1, Criteria1: = "șterge"„Ștergeți rândurileApplication.DisplayAlerts = Falsws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible). ȘtergeApplication.DisplayAlerts = Adevărat„Ștergeți filtrulLa eroare Reluați în continuarews.ShowAllDataLa eroare GoTo 0Sfârșitul Sub

Ștergeți rândul pe baza criteriilor de celulă

Aceasta va parcurge un interval, ștergând rânduri dacă celula din coloana A îndeplinește anumite criterii (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Declarați variabileleDim LastRow As Long, FirstRow As LongDim Row As LongCu ActiveSheet„Definiți primul și ultimul rândFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Buclă prin rânduri (de jos în sus)Pentru Row = LastRow To FirstRow Pasul -1Dacă .Range („A” & Row) .Value <0 Atunci.Range („A” & Row) .EntireRow.EleteEnd IfUrmătorul rândSe termina cuSfârșitul Sub

Programare VBA | Generatorul de coduri funcționează pentru dvs.!

Ștergeți rândul dacă celula este necompletată

Aceasta va parcurge un interval, ștergând un rând dacă o celulă din coloana A este necompletată:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Declarați variabileleDim LastRow As Long, FirstRow As LongDim Row As LongCu ActiveSheet„Definiți primul și ultimul rândFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Buclă prin rânduri (de jos în sus)Pentru Row = LastRow To FirstRow Pasul -1Dacă .Range ("A" & Row) .Value = "" Atunci.Range („A” & Row) .EntireRow.EleteEnd IfUrmătorul rândSe termina cuSfârșitul Sub

Ștergeți rândul gol

Alternativ, dacă doriți să ștergeți un rând dacă întregul rând este gol (faceți clic pe link pentru o metodă ușor diferită), puteți utiliza acest cod:

1234567891011121314151617181920 Sub DeleteBlankRows ()„Declarați variabileleDim LastRow As Long, FirstRow As LongDim Row As LongCu ActiveSheet„Definiți primul și ultimul rândFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Buclă prin rânduri (de jos în sus)Pentru Row = LastRow To FirstRow Pasul -1Dacă WorksheetFunction.CountA (.Rows (Row)) = 0 Atunci.Rows (Row) .EntireRow.EleteEnd IfUrmătorul rândSe termina cuSfârșitul Sub

Ștergeți rândul dacă celula conține valoare

Aceasta va parcurge un interval, ștergând un rând dacă celula din coloana A nu este necompletată:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()„Declarați variabileleDim LastRow As Long, FirstRow As LongDim Row As LongCu ActiveSheet„Definiți primul și ultimul rândFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Buclă prin rânduri (de jos în sus)Pentru Row = LastRow To FirstRow Pasul -1Dacă .Range („A” & Row) .Value „„ Atunci.Range („A” & Row) .EntireRow.EleteEnd IfUrmătorul rândSe termina cuSfârșitul Sub

V-ați săturat să căutați exemple de cod VBA? Încercați AutoMacro!

Introduceți rândul pe baza valorii celulei

Aceasta va parcurge un interval, inserând rânduri dacă o anumită celulă din acel rând scrie „inserare”:

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()„Declarați variabileleDim LastRow As Long, FirstRow As LongDim Row As LongCu ActiveSheet„Definiți primul și ultimul rândFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row„Buclă prin rânduri (de jos în sus)Pentru Row = LastRow To FirstRow Pasul -1Dacă .Range ("A" & Row) .Value = "insert" Apoi.Range ("A" & Row) .EntireRow.InsertEnd IfUrmătorul rândSe termina cuSfârșitul Sub
wave wave wave wave wave