Зміст
Якщо ви шукаєте один з найпростіших способів видалення рядка за допомогою VBA то ви потрапили в потрібне місце.
Давайте зануримося в основну статтю.
Завантажити Робочий зошит
VBA Видалення рядка.xlsm14 Способів видалення рядка засобами VBA
Тут у мене є три таблиці даних, щоб показати способи видалення рядків з використанням VBA У першій таблиці наведені деякі Продукція компанії та їх Розміри , Ціни .
Другий має певні Коди товарів та відповідні їм Розміри виробів і Ціни
А в останньому з них містяться деякі Назви проектів та їхні відповідні Дати початку і Витрати .
Для створення статті я використовував Microsoft Excel 365 ви можете використовувати будь-які інші версії на свій розсуд.
Спосіб-1: Видалення одного рядка за допомогою VBA
Припустимо, потрібно видалити рядок, що містить Продукт Черевик 1, і видалити цей єдиний рядок можна таким способом.
Крок-01 :
Перейдіть до Розробник Вкладка>>; Visual Basic Варіант
Після цього, на засіданні Редактор Visual Basic відкриється.
Перейдіть до Вставка Вкладка>>; Модуль Варіант
Після цього було проведено Модуль буде створено.
Крок-02 :
Напишіть наступний код
Sub dltrow1() Worksheets("Single").Rows(7).EntireRow.Delete End Sub
Ось, "Single" ім'я робочого аркуша, а Рядки(7) вибере номер рядка.
.EntireRow.Delete видалить весь рядок 7.
Натисніть F5
Результат :
Таким чином, ви видалите рядок, що містить Продукт ім'я Взуття 1 .
Читати далі: Як видалити рядки в Excel: 7 способів
Спосіб-2: Видалення декількох рядків за допомогою VBA
Якщо ви хочете видалити кілька рядків, наприклад, рядки, що містять Продукт імена Shoe1 , Черевик 2, і Shoe3 тоді ви можете слідувати за цим посиланням VBA код.
Крок-01 :
➤Перейдіть за посиланням Крок-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, і Shoe3 .
Читати далі: Як видалити кілька рядків в Excel (3 способи)
Спосіб 3: Видалення рядка шляхом виділення
Тут я покажу спосіб видалення рядка по відношенню до активної комірки цього рядка.
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow3() ActiveCell.EntireRow.Delete End Sub
Це призведе до видалення рядка з активною коміркою.
Збережіть код.
Крок-02 :
Виділіть будь-яку комірку рядка, яку потрібно видалити (тут я виділив комірку B7 )
Перейдіть до Розробник Вкладка>>; Макроси Варіант
Після цього, в рамках візиту в Україну Макрос Чарівник відкриється.
Виберіть пункт Назва макросу dltrow3 і натисніть Біжи
Результат :
Після цього ви видалите рядок, що містить Продукт ім'я Взуття 1 .
Спосіб 4: Видалення всіх рядків у виділенні
Для видалення всіх рядків вибірки можна скористатися цим методом.
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow4() Selection.EntireRow.Delete End Sub
Це призведе до видалення всіх рядків виділення.
Збережіть код.
Крок-02 :
Виберіть діапазон рядків, які потрібно видалити (тут я вибрав діапазон B7:D9 )
Перейдіть до Розробник Вкладка>>; Макроси Варіант
Після цього, в рамках візиту в Україну Макрос Чарівник відкриється.
Виберіть пункт Назва макросу dltrow4 і натисніть Біжи
Результат :
Потім ви видалите рядки, що містять Продукт імена Взуття 1 , Куртка 1, і Куртка2 .
Читати далі: Як видалити виділені рядки в Excel (8 способів)
Спосіб 5: Видалення рядка, якщо будь-яка комірка порожня
Ось, у мене є порожня клітинка, яка називається B9 (Я видалив значення з цієї комірки для цього методу), і використовуючи VBA код я видалю рядок, який має B9 в камеру.
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow5() Range("B5:D13").SpecialCells(xlCellTypeBlanks).EntireRow.Delete End Sub
Це призведе до видалення всіх рядків у діапазоні "B5:D13" не маючи жодної порожньої клітинки.
Натисніть F5
Результат :
Після цього Ви зможете видалити рядок, що містить порожню комірку.
Читати далі: Як видалити порожні рядки в Excel (11 способів)
Спосіб 6: Видалення рядка, якщо весь рядок порожній
Ось, у мене є порожня клітинка, яка називається B9 (я видалив значення для цього методу), і порожній рядок, який є Row 12 (я видалив значення для цього методу), і використовуючи VBA кодекс, а також Функція COUNTA Я видалю порожній рядок.
Крок-01 :
➤Перейдіть за посиланням Крок-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 :
➤Перейдіть за посиланням Крок-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" діапазон даних, а rc поверне загальний номер рядка цього діапазону, який дорівнює 9 .
Тут, в рамках програми "Відкритий світ", відбулася презентація ЗА цикл буде починатися з останнього рядка, тобто rc або 9 в даному випадку і закінчується першим рядом.
Крок -3 допоможе видалити кожну 3-й ряд в цьому діапазоні.
Натисніть F5
Результат :
Потім ви видалите рядки, що містять Продукт імена Взуття 1 , Черевик 2, і Shoe3 .
Читати далі: Як видалити кожен n-й рядок в Excel (найпростіші 6 способів)
Схожі читання:
- Як видалити виділені рядки в Excel VBA (покрокова інструкція)
- Видаляємо невикористовувані рядки в Excel (8 простих способів)
- Як видалити приховані рядки в Excel (3 способи)
- Видалення нескінченних рядків в Excel (5 простих способів)
- Як видалити рядки в Excel, які тривають вічно (4 простих способи)
Спосіб 8: Видалення рядка на основі значення комірки
У цьому методі я буду видаляти рядок з конкретним значенням Сорочка 2 .
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow8() Dim cell As Range For Each cell In Range("B5:D13") If cell.Value = "Сорочка 2" Then cell.EntireRow.Delete End If Next cell End Sub
"B5:D13" це діапазон даних, а ЗА цикл спрацює для кожної комірки цього діапазону.
Якщо будь-яка комірка рядка містить значення "Сорочка 2" то рядок буде видалено.
Натисніть F5
Результат :
Таким чином, ви видалите рядок, що містить Продукт ім'я Сорочка 2 .
Читати далі: Макрос VBA для видалення рядка, якщо комірка містить значення в Excel (2 способи)
Спосіб 9: Видалення дубльованих рядків
Тут у мене є два ряди, які мають Код продукту 97375 і тому я хочу видалити один з цих рядків, які позначені червоною рамкою нижче.
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow9() Range("B5:D13").RemoveDuplicates Columns:=1 End Sub
Ось, "B5:D13" діапазон даних, а Columns:=1 означає, що він буде шукати повторювані значення тільки в одному стовпчику, який є початковим стовпчиком Колонка Б але якщо ви хочете шукати і в інших колонках, ви можете використовувати цей номер відповідно до ваших потреб.
Натисніть F5
Результат :
Після цього Ви зможете видалити рядок, який схожий на інший рядок.
Читати далі: Як видалити дублікати рядків в Excel за допомогою VBA (8 ефективних способів)
Спосіб-10: Видалення рядків у таблиці
Нехай у вас є наступна таблиця, яка називається Таблиця 1 і тепер ви хочете видалити рядок № 6 цієї таблиці. Для цього ви можете скористатися наступним способом.
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow10() ActiveWorkbook.Worksheets("Table").ListObjects("Table1").ListRows(6).Delete End Sub
Ось, "Стіл" ім'я аркуша, "Table1" ім'я таблиці та 6 номер рядка цієї таблиці, який потрібно видалити.
Натисніть F5
Результат :
Таким чином Ви видалите потрібний Вам рядок цієї таблиці.
Читати далі: Як видалити дублікати рядків на основі одного стовпця за допомогою Excel VBA
Спосіб-11: Видалення видимих рядків після фільтрації
Ось у мене є таблиця даних, яка відфільтрована по Ціна стовпчик для значень більше $1,500.00 і я хочу видалити всі видимі рядки після фільтрації.
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow11() Range("B5:D13").SpecialCells(xlCellTypeVisible).EntireRow.Delete End Sub
Ось, "B5:D13" діапазон даних.
Натисніть F5
Тепер всі видимі рядки після фільтрації будуть видалені. Ви можете повернути приховані рядки, натиснувши кнопку Фільтр увійти в систему Ціна колонка.
Натисніть на кнопку Вибрати все опція
Натисніть ГАРАЗД.
Результат :
Нарешті, ви отримаєте приховані рядки назад в таблицю даних.
Читати далі: Як фільтрувати та видаляти рядки за допомогою VBA в Excel (2 способи)
Метод-12: Видалення рядка на основі останньої активної комірки
Тут моя остання активна клітинка - це клітинка B13 і я хочу видалити це, маючи останню активну комірку наступної таблиці даних.
Крок-01 :
➤Перейдіть за посиланням Крок-01 з Спосіб-1
Sub dltrow12() Cells(Rows.Count, 2).End(xlUp).EntireRow.Delete End Sub
Ось, 2 засоби Колонка Б на якому у мене активний мобільний, ви можете змінити номер відповідно до ваших потреб.
Натисніть F5
Результат :
Таким чином, ви видалите останній активний рядок.
Читати далі: Код Excel VBA для видалення рядків на основі декількох значень комірок (3 критерії)
Спосіб-13: Видалення рядків, що містять будь-які рядки
Припустимо, потрібно видалити рядки, що містять будь-який рядок, і для цього можна скористатися таким способом.
Крок-01 :
➤Перейдіть за посиланням Крок-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
Ось, "string" назва аркуша, номер першого рядка цього діапазону даних 5 і номер початкового стовпчика 2
На сьогоднішній день, на жаль, це не так. З дозволяє вказати об'єкт або визначений користувачем тип один раз для цілої серії операторів.
Після помилки відновити роботу Далі вказує, що при виникненні помилки часу виконання управління переходить на оператор, наступний за оператором, в якому виникла помилка.
LastRow і Останній стовпчик повертає останній рядок та стовпець діапазону даних.
SpecialCells(xlCellTypeConstants, xlTextValues) виділить рядки з будь-якими текстовими значеннями в діапазоні.
Натисніть F5
Результат :
Після цього буде видалено рядки, що містять будь-який текстовий рядок.
Читати далі: Комбінація клавіш Excel для видалення рядків (з бонусними прийомами)
Спосіб-14: Видалення рядка на основі дат
Тут я видалю рядки, що мають особливу дату 11/12/2021 (мм/дд/рр) у цьому методі з використанням Функція DATEVALUE .
Крок-01 :
➤Перейдіть за посиланням Крок-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:=xlФормули, LookAt:=xlПодраздел, _ SearchOrder:=xlПострокам,НапрямокПошуку:=xlПопередній).Рядок For i = LastRow To FirstRow Step -1 With .Cells(i, КритеріїСтовпчик) 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 в даному випадку і закінчується першим рядом.
ДАТА НАБОРУ перетворить текстову дату в значення.
Ось, Союз поверне об'єднання декількох діапазонів, що відповідають коміркам з датою 11/12/2021 і, нарешті, полігони будуть видалені.
Натисніть F5
Результат :
Після цього ви видалите рядки, що мають певну дату 11/12/2021 .
Пов'язаний контент: Видалення рядків з певними даними в Excel VBA (9 прикладів)
Практична секція
Для самостійного проходження практики ми надали Практика розділ, як показано нижче, на аркуші з назвою Практика Будь ласка, зробіть це самі.
Висновок
У цій статті я постарався висвітлити найпростіші способи використання VBA Сподіваємось, вона стане вам у нагоді. Якщо у вас є пропозиції чи запитання, будь ласка, діліться ними у коментарях.