Оглавление
Если вы ищете несколько самых простых способов удаления строки с помощью VBA тогда вы попали по адресу.
Давайте погрузимся в основную статью.
Скачать рабочую тетрадь
VBA Удалить строку.xlsm14 способов удаления строки с помощью 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 Эффективно для удаления строк. Надеюсь, вы найдете это полезным. Если у вас есть какие-либо предложения или вопросы, не стесняйтесь поделиться ими в разделе комментариев.