Вот пример, где вы хотите проверить столбцы A
, B
и C
Option Explicit
Sub DeleteIfBlanks()
Dim r As Long
Dim rng As Range
With ActiveSheet
For r = 1 To .UsedRange.Rows.Count
If LenB(.Cells(r, 1)) = 0 Then
If LenB(.Cells(r, 2)) = 0 Then
If LenB(.Cells(r, 3)) = 0 Then
If rng Is Nothing Then Set rng = .Cells(r, 1) Else Set rng = Union(rng, .Cells(r, 1))
End If
End If
End If
Next
If Not rng Is Nothing Then rng.EntireRow.Delete
End With
End Sub
Вам нужно изменить формулировку LenB(.Cells(r, 1))
так что 1
соответствует номеру любого столбца, который вы хотите проверить на наличие пробелов.
Для других людей VBA: я вкладываю свои заявления IF
для очень незначительного потенциального улучшения скорости. Я объединяю только первую ячейку и сворачиваю ее до целой строки в конце, потому что я ленивый и знаю нотацию ячейки лучше, чем запись строки. Если есть какие-то улучшения, которые являются функциональными, а не только стилистическими, дайте мне знать.