Как в vba excel удалить строку

Как в vba excel удалить строку

VBA Excel. Удаление пустых строк

Удаление пустых строк с помощью кода VBA из всего задействованного диапазона рабочего листа Excel и из отдельного заданного диапазона.

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

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

Определить границы используемого диапазона на рабочем листе из кода VBA Excel нам поможет последняя ячейка используемого диапазона: Cells.SpecialCells(xlLastCell) .

Самый простой код удаления пустых строк

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

Как в excel удалить нужную строку через VBA

7 ответов

Конечно можно. Ставишь на запись макрос, выполняешь какие нужно действия(удаление строки), останавливаешь запись. Открываешь Макросы->Изменить и смотришь какой код получился.
Будет примерно так:

Вообще-то, при удалении строки необходимо уменьшать счётчик, ибо в противном случае могут остаться строки, содержащие "-" (разумеется, если "-" содержатся в смежных ячейках) или начать удаление снизу вверх, т.е.

Private Sub Test()

Application.ScreenUpdating = False
Dim rw&
For rw = 100 To 1 Step -1
If Cells(rw, 1) = "-" And Cells(rw, 2) = "-" Then Rows(rw).Delete
Next
Application.ScreenUpdating = True

Чуть не забыл 🙂 если в дальнейшем потребуется проверять наличие "-" в большем количестве столбцов, чем сейчас, то вместо увеличения And или дополнительного цикла по столбцам, можно программно воспользоваться стандартной функцией рабочего листа =СЧЁТЕСЛИ() (см. листинг)

Private Sub Test2()

Dim rw&, ws As Worksheet
Set ws = ActiveSheet

Ссылка на основную публикацию