Цей підручник продемонструє різні способи видалення рядків і стовпців у Excel за допомогою VBA.
Видалити весь рядок або стовпець
Щоб видалити весь рядок у VBA, скористайтеся цим рядком коду:
1 | Рядки (1). Видалити |
Зверніть увагу, що ми використовуємо Видалити метод видалення рядка.
Замість посилання на Об'єкт рядків, Ви можете посилатися на рядки на основі їх Об'єкт діапазону з EntireRow:
1 | Діапазон ("a1"). EntireRow.Delete |
Аналогічно, щоб видалити весь стовпець, використовуйте ці рядки коду:
1 | Стовпці (1). Видалити |
1 | Діапазон ("a1"). EntireColumn.Delete |
Видалити кілька рядків або стовпців
За допомогою тієї ж логіки можна також видалити кілька рядків одночасно:
1 | Ряди ("1: 3"). Видалити |
або стовпці:
1 | Стовпці ("A: C"). Видалити |
Зверніть увагу, тут ми посилаємося на конкретні номери рядків та стовпців / букви, оточені цитатами.
Звичайно, ви також можете посилатися на EntireRow діапазону:
1 | Діапазон ("a1: a10"). EntireRow.Delete |
Примітка: Наведені нижче приклади демонструють лише видалення рядків, проте, як ви бачите вище, синтаксис практично ідентично видаляє стовпці.
Видалити порожні / порожні рядки
У цьому прикладі буде видалено рядок, якщо весь рядок порожній:
1234567891011 | Sub DeleteRows_EntireRowBlank ()Яскрава клітина як діапазонДля кожної клітинки в діапазоні ("b2: b20")Якщо Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Тодіcell.EntireRow.DeleteЗакінчити ЯкщоНаступна клітинаEnd Sub |
Він використовує функцію робочого аркуша Excel: COUNTA.
Видалити рядок, якщо комірка порожня
Це видалить рядок, якщо певний стовпець у цьому рядку порожній (у цьому випадку стовпець B):
1 | Діапазон ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete |
Видалити рядок на основі значення комірки
Це прокрутить діапазон і видалить рядки, якщо певне значення комірки в цьому рядку говорить "видалити".
1234567891011 | Sub DeleteRowswithSpecificValue ()Яскрава клітинка як діапазонДля кожної клітинки в діапазоні ("b2: b20")Якщо cell.Value = "видалити" Тодіcell.EntireRow.DeleteЗакінчити ЯкщоНаступна клітинаEnd Sub |
Додаткові приклади видалення рядків та стовпців
Видалити повторювані рядки
Цей код видалить усі повторювані рядки в діапазоні:
1 | Діапазон ("b2: c100"). RemoveDuplicates Стовпці: = 2 |
Зверніть увагу, що ми встановили стовпці: = 2. Це повідомляє VBA перевіряти обидва перші два стовпці даних при розгляді дублікатів рядків. Дублікат виявляється лише тоді, коли обидва стовпці мають повторювані значення.
Якби ми встановили для цього значення 1, лише перший рядок перевіряли б на наявність повторюваних значень.
Видалити рядки таблиці
Цей код видалить другий рядок у таблиці, посилаючись на ListObjects.
1 | ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete |
Видалити відфільтровані рядки
Щоб видалити лише рядки, видимі після фільтрації:
1 | Діапазон ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete |
Видалити рядки в діапазоні
Цей код видалить усі рядки в діапазоні:
1 | Діапазон ("a1: a10"). EntireRow.Delete |
Видалити вибрані рядки
Цей код видалить усі вибрані рядки:
1 | Selection.EntireRow.Delete |
Видалити останній рядок
Буде видалено останній використаний рядок у стовпці В:
1 | Клітинки (рядки. Кількість, 2). Кінець (xlUp). |
Змінивши 2 на 1, ви можете видалити останній використаний рядок у стовпці А тощо:
1 | Клітинки (рядки. Кількість, 1). Кінець (xlUp). |
Видалити стовпці за номером
Щоб видалити стовпець за його номером, використовуйте такий код:
1 | Стовпці (2). Видалити |