VBA Удалить всю строку или столбец

В этом руководстве будут продемонстрированы различные способы удаления строк и столбцов в Excel с помощью VBA.

Удалить всю строку или столбец

Чтобы удалить всю строку в VBA, используйте эту строку кода:

1 Ряды (1) .Удалить.

Обратите внимание, что мы используем Удалить метод удаления строки.

Вместо ссылки на Строки объекта, вы можете ссылаться на строки на основе их Объект диапазона с участием Весь ряд:

1 Диапазон ("a1"). Целая строка.Удалить

Аналогично, чтобы удалить весь столбец, используйте следующие строки кода:

1 Столбцы (1) .Удалить
1 Диапазон ("a1"). ВесьСтолбец.Удалить

Удалить несколько строк или столбцов

Используя ту же логику, вы также можете удалить сразу несколько строк:

1 Строки ("1: 3"). Удалить

или столбцы:

1 Столбцы ("A: C"). Удалить

Обратите внимание, что здесь мы ссылаемся на конкретные номера / буквы строк и столбцов, заключенные в кавычки.

Конечно, вы также можете ссылаться на всю строку диапазона:

1 Диапазон ("a1: a10"). Вся строка. Удалить

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

Удалить пустые / пустые строки

В этом примере будет удалена строка, если вся строка пуста:

1234567891011 Sub DeleteRows_EntireRowBlank ()Тусклая ячейка как диапазонДля каждой ячейки в диапазоне ("b2: b20")Если Application.WorksheetFunction.CountA (cell.EntireRow) = 0 Тогдаcell.EntireRow.DeleteКонец, еслиСледующая ячейкаКонец подписки

Он использует функцию листа Excel: COUNTA.

Удалить строку, если ячейка пуста

Это приведет к удалению строки, если конкретный столбец в этой строке будет пустым (в данном случае столбец B):

1 Диапазон ("b3: b20"). SpecialCells (xlCellTypeBlanks) .EntireRow.Delete

Удалить строку на основе значения ячейки

Это будет циклически перебирать диапазон и удалять строки, если определенное значение ячейки в этой строке говорит «удалить».

1234567891011 Sub DeleteRowswithSpecificValue ()Тусклая ячейка как диапазонДля каждой ячейки в диапазоне ("b2: b20")Если cell.Value = "delete", тоcell.EntireRow.DeleteКонец, еслиСледующая ячейкаКонец подписки

Дополнительные примеры удаления строк и столбцов

Удалить повторяющиеся строки

Этот код удалит все повторяющиеся строки в диапазоне:

1 Диапазон ("b2: c100"). Удалить повторяющиеся столбцы: = 2

Обратите внимание, что мы устанавливаем Columns: = 2. Это указывает VBA проверять оба первых двух столбца данных при рассмотрении дублирования строк. Дубликат обнаруживается только в том случае, если оба столбца имеют повторяющиеся значения.

Если бы мы установили это значение в 1, только первая строка была бы проверена на наличие повторяющихся значений.

Удалить строки таблицы

Этот код удалит вторую строку в таблице, ссылаясь на ListObjects.

1 ThisWorkbook.Sheets ("Sheet1"). ListObjects ("list1"). ListRows (2) .Delete

Удалить отфильтрованные строки

Чтобы удалить только те строки, которые видны после фильтрации:

1 Диапазон ("b3: b20"). SpecialCells (xlCellTypeVisible) .EntireRow.Delete

Удалить строки в диапазоне

Этот код удалит все строки в диапазоне:

1 Диапазон ("a1: a10"). Вся строка. Удалить

Удалить выбранные строки

Этот код удалит все выбранные строки:

1 Selection.EntireRow.Delete

Удалить последнюю строку

Это приведет к удалению последней использованной строки в столбце B:

1 Ячейки (Rows.Count, 2) .End (xlUp) .EntireRow.Delete

Изменив 2 на 1, вы можете удалить последнюю использованную строку в столбце A и т. Д .:

1 Ячейки (Rows.Count, 1) .End (xlUp) .EntireRow.Delete

Удалить столбцы по номеру

Чтобы удалить столбец по его номеру, используйте следующий код:

1 Столбцы (2) .Удалить

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

wave wave wave wave wave