Видалити або вставити рядки на основі значення комірки

У цьому посібнику буде показано, як видаляти або вставляти рядки на основі значень комірок.

Видалити рядок на основі значення комірки

Це дозволить прокрутити діапазон і видалити рядки, якщо стовпець А говорить "видалити".

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Заявляйте змінніDim LastRow As Long, FirstRow As LongDim Row As LongЗа допомогою ActiveSheet'Визначте перший і останній рядиFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Цикл через рядки (знизу вгору)For Row = LastRow To FirstRow Крок -1Якщо .Range ("A" & Row) .Value = "delete" Тоді.Range ("A" & Row) .EntireRow.DeleteЗакінчити ЯкщоНаступний рядокЗакінчити зEnd Sub

Ми повинні почати цикл з нижнього рядка, тому що видалення рядка змістить дані, пропустивши рядки, якщо цикл зверху вниз.

Також зверніть увагу, що замість того, щоб вручну вводити останній рядок, ми обчислюємо останній використаний рядок.

Видалити рядок - на основі фільтра

У попередньому прикладі ми перебирали рядки, видаляючи кожен рядок, який відповідає критеріям. Крім того, ми можемо використовувати автофільтр Excel для фільтрації рядків за деякими критеріями, а потім видалити видимі рядки:

12345678910111213141516171819202122232425 ПідфільтрAndDeleteRows ()'Оголосити змінну wsЗатемнити як робочий аркушВстановіть ws = ActiveSheet'Скинути наявні фільтриУвімкнути Помилка Відновити Даліws.ShowAllDataПомилка Перейти до 0'Застосувати фільтрws.Range ("a1: d100"). Поле автофільтра: = 1, Критерії1: = "видалити"'Видалити рядкиApplication.DisplayAlerts = Неправдаws.Range ("a1: d100"). SpecialCells (xlCellTypeVisible). ВидалитиApplication.DisplayAlerts = Правда'Очистити фільтрУвімкнути Помилка Відновити Даліws.ShowAllDataПомилка Перейти до 0End Sub

Видалити рядок на основі критеріїв комірки

Це прокрутить діапазон, видаливши рядки, якщо осередок у стовпці А відповідає певним критеріям (<0):

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Заявляйте змінніDim LastRow As Long, FirstRow As LongDim Row As LongЗа допомогою ActiveSheet'Визначте перший і останній рядиFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Цикл через рядки (знизу вгору)For Row = LastRow To FirstRow Крок -1Якщо .Range ("A" & Row) .Value <0 Тоді.Range ("A" & Row) .EntireRow.DeleteЗакінчити ЯкщоНаступний рядокЗакінчити зEnd Sub

Програмування VBA | Генератор коду працює для вас!

Видалити рядок, якщо комірка порожня

Це прокрутить діапазон, видаливши рядок, якщо клітинка у стовпці А порожня:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Заявляйте змінніDim LastRow As Long, FirstRow As LongDim Row As LongЗа допомогою ActiveSheet'Визначте перший і останній рядиFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Цикл через рядки (знизу вгору)For Row = LastRow To FirstRow Крок -1Якщо .Range ("A" & Row) .Value = "" Тоді.Range ("A" & Row) .EntireRow.DeleteЗакінчити ЯкщоНаступний рядокЗакінчити зEnd Sub

Видалити порожню рядок

Крім того, якщо ви хочете видалити рядок, якщо весь рядок порожній (натисніть посилання для дещо іншого методу), ви можете скористатися цим кодом:

1234567891011121314151617181920 Sub DeleteBlankRows ()'Заявляйте змінніDim LastRow As Long, FirstRow As LongDim Row As LongЗа допомогою ActiveSheet'Визначте перший і останній рядиFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Цикл через рядки (знизу вгору)For Row = LastRow To FirstRow Крок -1Якщо WorksheetFunction.CountA (.Rows (Row)) = 0 Тоді.Rows (Row) .EntireRow.DeleteЗакінчити ЯкщоНаступний рядокЗакінчити зEnd Sub

Видалити рядок, якщо клітинка містить значення

Це дозволить прокрутити діапазон, видаливши рядок, якщо осередок у стовпці А не порожній:

1234567891011121314151617181920 Sub DeleteRowsBasedonCellValue ()'Заявляйте змінніDim LastRow As Long, FirstRow As LongDim Row As LongЗа допомогою ActiveSheet'Визначте перший і останній рядиFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Цикл через рядки (знизу вгору)For Row = LastRow To FirstRow Крок -1Якщо .Range ("A" & Row) .Value "" Тоді.Range ("A" & Row) .EntireRow.DeleteЗакінчити ЯкщоНаступний рядокЗакінчити зEnd Sub

Втомилися від пошуку прикладів коду VBA? Спробуйте AutoMacro!

Вставити рядок на основі значення комірки

Це буде цикл через діапазон, вставляючи рядки, якщо певна клітинка в цьому рядку говорить "вставити":

1234567891011121314151617181920 Sub InsertRowsBasedonCellValue ()'Заявляйте змінніDim LastRow As Long, FirstRow As LongDim Row As LongЗа допомогою ActiveSheet'Визначте перший і останній рядиFirstRow = 1LastRow = .UsedRange.Rows (.UsedRange.Rows.Count) .Row'Цикл через рядки (знизу вгору)For Row = LastRow To FirstRow Крок -1Якщо .Range ("A" & Row) .Value = "insert" Тоді.Range ("A" & Row) .EntireRow.InsertЗакінчити ЯкщоНаступний рядокЗакінчити зEnd Sub
wave wave wave wave wave