Как удалить строку с помощью VBA (14 способов)

  • Поделись Этим
Hugh West

Если вы ищете несколько самых простых способов удаления строки с помощью VBA тогда вы попали по адресу.

Давайте погрузимся в основную статью.

Скачать рабочую тетрадь

VBA Удалить строку.xlsm

14 способов удаления строки с помощью VBA

Здесь я привожу три таблицы данных, чтобы показать способы удаления строк с помощью VBA Первая таблица содержит некоторые Продукция компании и их Размеры , Цены .

У второго есть несколько Коды продуктов и их соответствующие Размеры изделия и Цены

И последний содержит некоторые Названия проектов и их соответствующие Даты начала и Затраты .

Для создания статьи я использовал Microsoft Excel 365 версию, вы можете использовать любые другие версии в зависимости от вашего удобства.

Метод-1: Удаление одной строки с помощью VBA

Допустим, вы хотите удалить строку, содержащую Продукт Туфелька 1, и для удаления этой единственной строки можно воспользоваться следующим методом.

Шаг-01 :

➤ Перейти к Разработчик Tab>> Visual Basic Вариант

Затем Редактор Visual Basic откроется.

➤ Перейти к Вставка Tab>> Модуль Вариант

После этого Модуль будет создан.

Шаг-02 :

➤ Напишите следующий код

 Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub 

Вот, "Одиночка" это имя рабочего листа, а Строки(7) выберет номер строки.

.EntireRow.Delete удалит всю строку 7.

➤ Нажмите F5

Результат :

Таким образом, вы удалите строку, содержащую файл Продукт имя Туфелька 1 .

Читать далее: Как удалить строки в Excel: 7 методов

Метод-2: Удаление нескольких строк с помощью VBA

Если вы хотите удалить несколько строк, например, строки, содержащие Продукт имена Ботинок1 , Ботинок2, и Ботинок3 , тогда вы можете следовать этому VBA код.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow2() Rows(13).EntireRow.Delete Rows(10).EntireRow.Delete Rows(7).EntireRow.Delete End Sub 

Здесь будут удалены номера строк 13, 10 и 7, и при последовательной записи номеров строк нужно писать от номера последней строки к номеру первой строки, как в этом коде.

В противном случае, после удаления первого ряда, например, ряда 7, остальные ряды, расположенные ниже этого ряда, переместятся на один ряд вверх, и таким образом ряд 10 станет рядом 9, а ряд 13 - рядом 12. По этой причине вы не сможете удалить правильные ряды.

➤ Нажмите F5

Результат :

Затем вы удалите строки, содержащие Продукт имена Туфелька 1 , Ботинок2, и Ботинок3 .

Читать далее: Как удалить несколько строк в Excel (3 метода)

Метод-3: Удаление строки путем выделения

Здесь я покажу способ удаления строки по отношению к активной ячейке этой строки.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow3() ActiveCell.EntireRow.Delete End Sub 

Это приведет к удалению строки с активной ячейкой.

➤ Сохраните код.

Шаг-02 :

➤ Выберите любую ячейку ряда, которую вы хотите удалить (здесь я выбрал ячейку B7 )

➤ Перейти к Разработчик Tab>> Макросы Вариант

После этого Макро Откроется мастер.

➤ Выберите Имя макроса dltrow3 и нажмите Запускайте

Результат :

После этого вы удалите строку, содержащую Продукт имя Туфелька 1 .

Метод-4: Удаление всех строк в выборке

Для удаления всех строк выделения можно воспользоваться следующим методом.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow4() Selection.EntireRow.Delete End Sub 

Это приведет к удалению всех строк выделения.

➤ Сохраните код.

Шаг-02 :

➤ Выберите диапазон строк, которые вы хотите удалить (Здесь я выбрал диапазон B7:D9 )

➤ Перейти к Разработчик Tab>> Макросы Вариант

После этого Макро Откроется мастер.

➤ Выберите Имя макроса dltrow4 и нажмите Запускайте

Результат :

Затем вы удалите строки, содержащие Продукт имена Туфелька 1 , Пиджак1, и Пиджак2 .

Читать далее: Как удалить выделенные строки в Excel (8 подходов)

Метод-5: Удаление строки, если какая-либо ячейка пуста

Здесь у меня есть пустая ячейка, которая B9 (я удалил значение из этой ячейки для этого метода), и используя VBA я удалю строку, имеющую B9 клетка.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub 

Это приведет к удалению всех строк в диапазоне "B5:D13" с любой пустой ячейкой.

➤ Нажмите F5

Результат :

Затем вы сможете удалить строку, содержащую пустую ячейку.

Читать далее: Как удалить пустые строки в Excel (11 методов)

Метод-6: Удаление строки, если вся строка пуста

Здесь у меня есть пустая ячейка, которая B9 (я удалил значения для этого метода), и пустую строку, которая является строкой 12 (я удалил значения для этого метода), и используя VBA код и функция COUNTA Я удалю строку, которая пуста.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow6() Dim cell As Range For Each cell In Range("B5:D13") If Application.WorksheetFunction.CountA(cell.EntireRow) = 0 Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" диапазон данных и НА цикл будет работать для каждой ячейки в этом диапазоне.

CountA(cell.EntireRow) вернет количество незаполненных ячеек, и когда оно станет равным 0, строка будет удалена.

➤ Нажмите F5

Результат :

После этого вы сможете удалить пустой ряд, но он не удалит ни одного ряда, в котором не были бы пусты все ячейки этого ряда.

Читать далее: Как использовать VBA для удаления пустых строк в Excel

Метод-7: Удаление каждой n-й строки

Вы можете удалить каждый n-й ряд (в данном случае каждый 3-й ряд), следуя этому методу.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow7() rc = Range("B5:D13").Rows.Count For i = rc To 1 Step -3 Range("B5:D13").Rows(i).EntireRow.Delete Next i End Sub 

"B5:D13" диапазон данных и рк вернет общее количество строк этого диапазона, которое равно 9 .

Здесь НА цикл будет начинаться с последней строки, которая является рк или 9 в данном случае и заканчивается первым рядом.

Шаг -3 поможет удалить все 3-й ряд в этом диапазоне.

➤ Нажмите F5

Результат :

Затем вы удалите строки, содержащие Продукт имена Туфелька 1 , Ботинок2, и Ботинок3 .

Читать далее: Как удалить каждую n-ую строку в Excel (6 самых простых способов)

Похожие чтения:

  • Как удалить выделенные строки с помощью Excel VBA (пошаговое руководство)
  • Удаление неиспользуемых строк в Excel (8 простых способов)
  • Как удалить скрытые строки в Excel (3 метода)
  • Удаление бесконечных строк в Excel (5 простых способов)
  • Как удалить строки в Excel, которые продолжаются вечно (4 простых способа)

Метод-8: Удаление строки на основе значения ячейки

В этом методе я удалю строку с определенным значением Рубашка 2 .

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Shirt 2" Then cell.EntireRow.Delete End If Next cell End Sub 

"B5:D13" это диапазон данных, а НА цикл будет работать для каждой ячейки в этом диапазоне.

Если любая ячейка строки содержит значение "Рубашка 2" то ряд будет удален.

➤ Нажмите F5

Результат :

Таким образом, вы удалите строку, содержащую файл Продукт имя Рубашка 2 .

Читать далее: Макрос VBA для удаления строки, если ячейка содержит значение в Excel (2 метода)

Метод-9: Удаление дублирующихся строк

Здесь у меня есть две строки, имеющие Код товара 97375 и поэтому я хочу удалить одну из этих строк, которые отмечены красным квадратом ниже.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub 

Вот, "B5:D13" диапазон данных и Колонки:=1 означает, что он будет искать дубликаты значений только в одном столбце, который является начальным столбцом Колонка B но если вы хотите искать и в других колонках, вы можете использовать это число в соответствии с вашими потребностями.

➤ Нажмите F5

Результат :

После этого вы сможете удалить строку, которая похожа на другую строку.

Читать далее: Как удалить дубликаты строк в Excel с помощью VBA (8 эффективных способов)

Метод-10: Удаление строк в таблице

Предположим, у вас есть следующая таблица, имя которой Таблица1 и теперь вы хотите удалить строку номер 6 из этой таблицы. Для этого вы можете воспользоваться следующим методом.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub 

Вот, "Таблица" это имя листа, "Таблица1" это имя таблицы и 6 это номер строки этой таблицы, которую вы хотите удалить.

➤ Нажмите F5

Результат :

Таким образом, вы удалите нужную вам строку этой таблицы.

Читать далее: Как удалить дубликаты строк на основе одного столбца с помощью Excel VBA

Метод-11: Удаление видимых строк после фильтрации

Здесь у меня есть таблица данных, которая фильтруется по параметру Цена столбец для значений, превышающих $1,500.00 и я хочу удалить все видимые строки после фильтрации.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub 

Вот, "B5:D13" это диапазон данных.

➤ Нажмите F5

Теперь все видимые строки после фильтрации будут удалены. Теперь вы можете вернуть скрытые строки, выбрав опцию Фильтр знак в Цена колонна.

➤ Нажмите на Выбрать все вариант

➤ Нажмите OK

Результат :

Наконец, вы получите скрытые строки обратно в таблицу данных.

Читать далее: Как фильтровать и удалять строки с помощью VBA в Excel (2 метода)

Метод-12: Удаление строки на основе последней активной ячейки

Здесь моя последняя активная ячейка - это ячейка B13 и я хочу удалить его из последней активной ячейки следующей таблицы данных.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub 

Вот, 2 означает Колонка B на котором находится моя активная ячейка, вы можете изменить номер в соответствии с вашими потребностями.

➤ Нажмите F5

Результат :

Таким образом, вы удалите последний активный ряд.

Читать далее: Код Excel VBA для удаления строк на основе значения нескольких ячеек (3 критерия)

Метод-13: Удаление строк с любыми строками

Предположим, вы хотите удалить строки, содержащие какую-либо строку, и для этого вы можете воспользоваться следующим методом.

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow13() Dim FirstRow As Long Dim LastRow As Long Dim FirstColumn As Long Dim LastColumn As Long Dim sheet As Worksheet Dim Rng As Range FirstRow = 5 FirstColumn = 2 Set sheet = Worksheets("String") With sheet With .Cells LastRow = .Find(What:="*", LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row LastColumn = .Find(What:="*",LookIn:=xlFormulas, _ LookAt:=xlPart, SearchOrder:=xlByColumns, SearchDirection:=xlPrevious).Column End With Set Rng = .Range(.Cells(FirstRow, FirstColumn), .Cells(LastRow, LastColumn)) End With On Error Resume Next Rng.SpecialCells(xlCellTypeConstants, xlTextValues).EntireRow.Delete End Sub 

Вот, "строка" является именем листа, номер первой строки этого диапазона данных является 5 а номер начального столбца 2

Сайт С позволяет задать объект или определяемый пользователем тип один раз для всей серии операторов.

При ошибке продолжить Далее указывает, что при возникновении ошибки во время выполнения управление переходит к оператору, следующему за оператором, в котором возникла ошибка.

LastRow и LastColumn возвращает последнюю строку и столбец диапазона данных.

SpecialCells(xlCellTypeConstants, xlTextValues) выберет строки, содержащие любые текстовые значения в диапазоне.

➤ Нажмите F5

Результат :

После этого вы удалите строки, содержащие любую текстовую строку.

Читать далее: Ярлык Excel для удаления строк (с бонусными техниками)

Метод-14: Удаление строки на основе дат

Здесь я удалю строки с особой датой. 11/12/2021 (mm/dd/yyyy) в этом методе, используя Функция DATEVALUE .

Шаг-01 :

➤ Follow Шаг-01 из Метод-1

 Sub dltrow14() Dim FirstRow As Long Dim LastRow As Long Dim CriteriaColumn As Long Dim myDate As Date Dim sheet As Worksheet Dim i As Long Dim myRowsWithDate As Range FirstRow = 5 CriteriaColumn = 3 myDate = DateValue("11/12/2021") Set sheet = Worksheets("Date") With sheet LastRow = .Cells.Find(What:="*", LookIn:=xlFormulas, LookAt:=xlPart, _ SearchOrder:=xlByRows,SearchDirection:=xlPrevious).Row For i = LastRow To FirstRow Step -1 With .Cells(i, CriteriaColumn) If .Value = myDate Then If Not myRowsWithDate Is Nothing Then Set myRowsWithDate = Union(myRowsWithDate, .Cells) Else Set myRowsWithDate = .Cells End If End If End WithNext i End With If Not myRowsWithDate Is Nothing Then myRowsWithDate.EntireRow.Delete End Sub 

Вот, "Дата" является именем листа, номер первой строки этого диапазона данных является 5 и столбец критериев (в каком столбце есть даты) имеет следующий номер 3 .

Сайт С позволяет задать объект или определяемый пользователем тип один раз для всей серии операторов.

При ошибке продолжить Далее указывает, что при возникновении ошибки во время выполнения управление переходит к оператору, следующему за оператором, в котором возникла ошибка.

LastRow возвращает последнюю строку диапазона данных, а здесь НА цикл будет начинаться с последней строки, которая является LastRow или 6 в данном случае, и заканчивается первым рядом.

DATEVALUE преобразует текстовую дату в значение.

Вот, Союз вернет объединение множества диапазонов, соответствующих ячейкам с датой 11/12/2021 , и, наконец, диапазоны будут удалены.

➤ Нажмите F5

Результат :

После этого вы удалите строки, имеющие определенную дату 11/12/2021 .

Похожие материалы: Excel VBA для удаления строк с определенными данными (9 примеров)

Практическая секция

Для самостоятельного выполнения практики мы предоставили Практика раздел, как показано ниже, в листе с именем Практика Пожалуйста, сделайте это сами.

Заключение

В этой статье я постарался рассказать о самых простых способах использования VBA Эффективно для удаления строк. Надеюсь, вы найдете это полезным. Если у вас есть какие-либо предложения или вопросы, не стесняйтесь поделиться ими в разделе комментариев.

Хью Уэст — опытный тренер и аналитик Excel с более чем 10-летним опытом работы в отрасли. Он имеет степень бакалавра в области бухгалтерского учета и финансов и степень магистра делового администрирования. Хью страстно любит преподавать и разработал уникальный подход к обучению, которому легко следовать и который легко понять. Его экспертные знания Excel помогли тысячам студентов и специалистов по всему миру улучшить свои навыки и преуспеть в своей карьере. В своем блоге Хью делится своими знаниями со всем миром, предлагая бесплатные учебные пособия по Excel и онлайн-обучение, чтобы помочь отдельным лицам и компаниям полностью раскрыть свой потенциал.