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 |