VBA: удаление строк, которые имеют пробел в определенном столбце и создание кнопки в Excel - PullRequest
0 голосов
/ 12 апреля 2019

Поэтому я пытаюсь написать код VBA для удаления всей строки в Excel, если ячейка в этой строке в определенном столбце пуста.Я совершенно новичок в VBA, поэтому мне буквально нужно было учиться, как я закодировал.Я думаю, что у меня нет методологии, но она всегда оставляет одну последнюю строку с пробелом в этом конкретном столбце на рабочем листе.В некоторых случаях он оставляет 5 строк с пробелом в этом конкретном столбце.Любая помощь по ремонту будет оценена, спасибо!

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

Я уже пробовал несколько способов реализовать оба из них с помощью VBA, но я впервые использую VBA, поэтому многое для меня все еще ново.

Private Sub Button_Click()
Dim LR As Long
Application.ScreenUpdating = False
    For LR = Sheets("Test2").Range("AB" & Rows.Count).End(xlUp).Row To 2 Step 1
        If Range("AB" & LR).Value = "" Then
            Rows(LR).EntireRow.Delete
        End If
    Next LR
Application.ScreenUpdating = True
End Sub

Iожидать, что все строки с пробелами в этом столбце будут удалены при нажатии кнопки на рабочем листе.

1 Ответ

0 голосов
/ 12 апреля 2019

Если пустые ячейки в этом столбце действительно пустые, а не строки нулевой длины, возвращаемые формулами (например, ""), то SpecialCells может удалить их все сразу.

Private Sub Button_Click()

    Intersect(Me.Columns("AB"), Me.Cells.SpecialCells(xlCellTypeBlanks)).EntireRow.Delete

End Sub

Для вашего собственного кода вы должны сделать шаг назад в цикле (Шаг -1). Кроме того, вы не должны смотреть на столбец AB для последней ячейки. Если в последнем ряду или строках были пропуски, они игнорировались.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...