Tämä opetusohjelma osoittaa, kuinka poistetaan tai lisätään rivejä soluarvojen perusteella.
Poista rivi solun arvon perusteella
Tämä kiertää alueen läpi ja poistaa rivit, jos sarakkeessa A lukee "poista".
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Ilmoita muuttujatHimmennä viimeinen rivi niin kauan, ensimmäinen rivi niin kauanHimmennä rivi niin kauanActiveSheetin kanssa'Määritä ensimmäinen ja viimeinen riviEnsimmäinen rivi = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Kierrä rivejä (alhaalta ylös)Rivi = viimeinen rivi ensimmäiselle riville Vaihe -1Jos .Range ("A" & Rivi) .Value = "poista" Sitten.Range ("A" ja rivi) .EttireRow.DeleteLoppu JosSeuraava riviLopetaEnd Sub |
Meidän on aloitettava silmukka alimmalla rivillä, koska rivin poistaminen siirtää tietoja ja ohittaa rivit, jos silmukka ylhäältä alas.
Huomaa myös, että viimeisen rivin manuaalisen syöttämisen sijaan laskemme viimeksi käytetyn rivin.
Poista rivi - Suodattimen perusteella
Edellisessä esimerkissä selasimme rivit läpi poistamalla kaikki kriteerit täyttävät rivit. Vaihtoehtoisesti voimme suodattaa rivit joidenkin ehtojen perusteella Excelin automaattisen suodattimen avulla ja poistaa sitten näkyvät rivit:
12345678910111213141516171819202122232425 | Sub FilterAndDeleteRows ()'Ilmoita ws -muuttujaDim ws laskentataulukkonaAseta ws = ActiveSheet'Nollaa olemassa olevat suodattimetVirhe Jatka seuraavaksiws.ShowAllDataVirhe GoTo 0'Käytä suodatintaws.Range ("a1: d100"). Automaattisuodatinkenttä: = 1, kriteerit1: = "poista"'Poista rivitApplication.DisplayAlerts = Vääräws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible) .DeleteApplication.DisplayAlerts = Totta'Tyhjennä suodatinVirhe Jatka seuraavaksiws.ShowAllDataVirhe GoTo 0End Sub |
Poista rivi solukriteerien perusteella
Tämä kiertää alueen läpi ja poistaa rivit, jos sarakkeen A solu täyttää tietyt ehdot (<0):
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Ilmoita muuttujatHimmennä viimeinen rivi niin kauan, ensimmäinen rivi niin kauanHimmennä rivi niin kauanActiveSheetin kanssa'Määritä ensimmäinen ja viimeinen riviEnsimmäinen rivi = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Kierrä rivejä (alhaalta ylös)Rivi = viimeinen rivi ensimmäiselle riville Vaihe -1Jos .Range ("A" & Rivi) .Arvo <0 Sitten.Range ("A" ja rivi) .EttireRow.DeleteLoppu JosSeuraava riviLopetaEnd Sub |
VBA -ohjelmointi | Koodigeneraattori toimii sinulle!
Poista rivi, jos solu on tyhjä
Tämä kiertää alueen läpi ja poistaa rivin, jos sarakkeen A solu on tyhjä:
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Ilmoita muuttujatHimmennä viimeinen rivi niin kauan, ensimmäinen rivi niin kauanHimmennä rivi niin kauanActiveSheetin kanssa'Määritä ensimmäinen ja viimeinen riviEnsimmäinen rivi = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Kierrä rivejä (alhaalta ylös)Rivi = viimeinen rivi ensimmäiselle riville Vaihe -1Jos .Range ("A" & Rivi) .Value = "" Sitten.Range ("A" ja rivi) .EttireRow.DeleteLoppu JosSeuraava riviLopetaEnd Sub |
Poista tyhjä rivi
Vaihtoehtoisesti, jos haluat poistaa rivin, jos koko rivi on tyhjä (napsauta linkkiä saadaksesi hieman erilaisen menetelmän), voit käyttää tätä koodia:
1234567891011121314151617181920 | Sub DeleteBlankRows ()'Ilmoita muuttujatHimmennä viimeinen rivi niin kauan, ensimmäinen rivi niin kauanHimmennä rivi niin kauanActiveSheetin kanssa'Määritä ensimmäinen ja viimeinen riviEnsimmäinen rivi = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Kierrä rivejä (alhaalta ylös)Rivi = viimeinen rivi ensimmäiselle riville Vaihe -1Jos WorksheetFunction.CountA (.Rows (Row)) = 0 Sitten.Rivit (Rivi) .Koko Rivi.PoistaLoppu JosSeuraava riviLopetaEnd Sub |
Poista rivi, jos solu sisältää arvon
Tämä kiertää alueen läpi ja poistaa rivin, jos sarakkeen A solu ei ole tyhjä:
1234567891011121314151617181920 | Sub DeleteRowsBasedonCellValue ()'Ilmoita muuttujatHimmennä viimeinen rivi niin kauan, ensimmäinen rivi niin kauanHimmennä rivi niin kauanActiveSheetin kanssa'Määritä ensimmäinen ja viimeinen riviEnsimmäinen rivi = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Kierrä rivejä (alhaalta ylös)Rivi = viimeinen rivi ensimmäiselle riville Vaihe -1Jos .Range ("A" & Rivi) .Arvo "" Sitten.Range ("A" ja rivi) .EttireRow.DeleteLoppu JosSeuraava riviLopetaEnd Sub |
Oletko kyllästynyt etsimään esimerkkejä VBA -koodista? Kokeile AutoMacroa!
Lisää rivi solun arvon perusteella
Tämä kiertää alueen läpi ja lisää rivejä, jos jokin kyseisen rivin solu sanoo "lisää":
1234567891011121314151617181920 | Sub InsertRowsBasedonCellValue ()'Ilmoita muuttujatHimmennä viimeinen rivi niin kauan, ensimmäinen rivi niin kauanHimmennä rivi niin kauanActiveSheetin kanssa'Määritä ensimmäinen ja viimeinen riviEnsimmäinen rivi = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Kierrä rivejä (alhaalta ylös)Rivi = viimeinen rivi ensimmäiselle riville Vaihe -1Jos .Range ("A" & Rivi) .Value = "insert" Then.Range ("A" ja rivi) .EntireRow.InsertLoppu JosSeuraava riviLopetaEnd Sub |