Як видалити всю рядок в Excel за допомогою VBA (приклади)

Додавання та видалення рядків є частиною щоденних звичайних завдань під час роботи з Excel.

Хоча це можна легко зробити з самого аркуша, іноді вам може знадобитися використовувати маршрут VBA для видалення рядків у Excel. Це можуть бути видалення певного рядка, кількох рядків у виділенні, видалення альтернативних рядків або тих, які мають певне значення.

У цьому підручнику я покажу вам, як видалити рядки в Excel за допомогою VBA (кілька сценаріїв).

Тож почнемо!

Видалити весь рядок за допомогою VBA

Щоб видалити весь рядок у Excel за допомогою VBA, потрібно скористатися методом EntireRow.Delete.

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

Sub DeleteEntireRow () Рядки (1) .EntireRow.Delete End Sub

У наведеному вище коді спочатку вказується рядок, який потрібно видалити (це робиться шляхом зазначення числа в дужках), а потім використовується метод EntireRow.Delete для його видалення.

Ви також можете видалити кілька рядків, вказавши ці рядки в коді.

Наприклад, наведений нижче код видалить рядки 1, 5 і 9 на аркуші:

Sub Видалити рядки (9) .EntireRow.Delete Rows (5) .EntireRow.Delete Rows (1) .EntireRow.Delete End Sub

Наведений вище код використовує ту саму логіку, де він вказує номери рядків, і Excel видалятиме ці рядки по одному.

ВАЖЛИВО: Коли ви видаляєте рядки з чимось подібним до наведеного вище коду, не забудьте почати видалення знизу, а потім піднятися вгору. Наприклад, якщо ви починаєте зверху і спочатку видаляєте рядок 1, усі рядки під ним зміщуються на один рядок вгору, а нумерація вимикається (оскільки рядок 5 стане рядком 4 тощо)

Видалити всі рядки у виділенні

Якщо ви хочете видалити всі рядки у вибраному діапазоні комірок, ви можете скористатися кодом макросу VBA нижче:

Sub ВидаленняEntireRow () Вибір.EntireRow.Delete End Sub

Наведений вище код стосується методу EntireRow.Delete до всього виділення.

Видалити альтернативні рядки (або Видалити кожен третій/четвертий/N -й рядок)

Іноді ви можете отримати дамп даних, де кожен другий рядок (або третій, четвертий або N -й рядки) є марними і їх потрібно видалити.

Раніше я працював з фінансовими даними, де кожен другий рядок був порожнім і його потрібно було видалити.

Це сценарій, коли VBA дійсно сяє.

Нижче наведено код VBA, який пройде через усі рядки у виділенні та видалить кожен другий рядок:

Sub DeleteAlternateRows () RCount = Selection.Rows.Count For i = RCount До 1 кроку -2 Selection.Rows (i) .EntireRow.Delete Next i End Sub

Дозвольте мені пояснити, як працює цей код VBA.

По -перше, я використав змінну RCount щоб отримати загальну кількість рядків у виділенні.

Потім я використав цикл For Next, щоб запустити це стільки разів, скільки рядків. Наприклад, якщо є 12 рядків, цей цикл буде працювати від 12 до 1 (тобто 12 разів). Важливо запускати це від останнього рядка у виділеному до першого, оскільки ми не хочемо, щоб номери рядків змінювалися при видаленні рядка.

Також використовується крок -2, оскільки нам потрібно видалити кожен другий рядок (знизу вгору). Якщо ви хочете видалити кожен третій рядок, ви можете використовувати -3.

У циклі VBA я використовував метод Selection.Rows (i) .EntireRow.Delete для видалення кожного альтернативного рядка.

Видалити порожні рядки за допомогою VBA

Ви також можете використовувати метод EntireRow.Delete, щоб видалити всі порожні рядки.

Нижче наведено код VBA, який виділить порожні клітинки у вибраному наборі даних і видалить весь рядок.

Sub DeleteBlankRows () Selection.SpecialCells (xlCellTypeBlanks) .EntireRow.Delete End Sub

Наведений вище код використовує властивість SpecialCells для вибору та видалення всіх порожніх клітинок. Це той самий метод, який також дозволяє нам використовувати діалогове вікно "Перейти до спеціального" для вибору всіх порожніх клітинок.

Після того, як ці порожні клітинки ідентифікуються за допомогою SpecialCell, вони видаляються за допомогою методу EntireRow.Delete.

Примітка: Цей метод вибирає порожні клітинки і не перевіряє, чи порожній весь рядок чи ні. Отже, якщо будь -яка клітинка порожня в рядку, це все одно видалить весь рядок.

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

Ви також можете використовувати простий код VBA, щоб пройти кожну клітинку у вибраному діапазоні та видалити всі рядки, де клітинка містить певний текст або значення.

Наприклад, припустимо, що у вас є набір даних, і я хочу видалити всі комірки, які мають текст Printer у стовпці 2 виділення.

Нижче наведено код, який буде це робити:

Sub DeleteRowswithSpecificValue () Для i = Selection.Rows.Count To 1 Step -1 If Cells (i, 2) .Value = "Printer" Тоді комірки (i, 2) .EntireRow.Delete End, якщо наступний i End Sub

Наведений вище код спочатку підраховує загальну кількість рядків у виділенні. Це дозволить переконатися, що цикл запускається лише стільки разів. Потім він використовує цикл "Для наступного", щоб пройти всі клітинки у стовпці 2.

Після цього оператор IF THEN ELSE використовується для перевірки значення в кожній комірці у стовпці 2. І у випадку, якщо значення/текст збігається із зазначеним текстом (у цьому прикладі це "Принтер").

У цьому прикладі я перевірив, чи відповідає текст певному рядку чи ні. Ви також можете зробити це зі значеннями. Наприклад, можна видалити всі рядки, у яких вартість продажу менша за 1000 або більша за 1000.

Примітка: Важливо відзначити, що цикл працює з Вибір.Роди. Обчислення до 1 щоб переконатися, що при видаленні рядка це не впливає на рядки над ним.

Як користуватися цим кодом VBA

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

Вам потрібно скопіювати та вставити ці коди в модуль у редакторі Excel VB. Після того, як ці коди скопійовані, ви можете запустити коди макросів.

Нижче наведено кроки, щоб скопіювати та вставити ці коди VBA у модуль:

  1. Утримуйте клавішу ALT і натисніть клавішу F11 (або Функція + Опція + F11 у Mac). Відкриється редактор VB
  2. У редакторі VB ліворуч у вас буде провідник проектів. Якщо ви його не бачите, перейдіть до опції Перегляд, а потім натисніть Провідник проектів.
  3. Клацніть правою кнопкою миші будь-який об’єкт у Провіднику проектів (для книги, у якій потрібно запустити код).
  4. Перейдіть до пункту Вставити, а потім натисніть кнопку Модуль. Це додасть новий модуль до робочої книги
  5. Скопіюйте та вставте вищевказані коди в модуль.

І щоб запустити ці коди, ви можете розмістити курсор у будь -якому місці коду (який потрібно запустити) і натиснути клавішу F5 (або натиснути зелений трикутник на панелі інструментів VBA).

Я також написав детальний підручник про різні способи запуску кодів макросів VBA в Excel.

Якщо вам досить часто потрібно користуватися будь -яким із цих кодів, ви також можете розглянути можливість додавання їх до особистої книги макросів, а потім до QAT. Таким чином, код стане доступним для вас у будь -якій вашій книзі одним натисканням кнопки.

Отже, це були деякі коди VBA, які можна використовувати для видалення цілих рядків у Excel (у різних сценаріях). Цю ж логіку можна застосувати і у випадку, якщо ви хочете видалити стовпці замість рядків (з відповідним коригуванням у прикладах коду).

Сподіваюся, вам цей підручник був корисним!

Ви допоможете розвитку сайту, поділившись сторінкою з друзями

wave wave wave wave wave