Veja um exemplo em que as colunas que você deseja verificar são A
, B
e 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
Você precisa alterar a instrução LenB(.Cells(r, 1))
para que 1
corresponda ao número da coluna que você deseja verificar em branco.
Para outras pessoas do VBA que estão por aí: Eu aninho minhas declarações IF
para a melhoria muito menor da velocidade potencial. Eu união apenas a primeira célula e rollup para wholeerow no final porque eu sou preguiçoso e eu sei notação celular melhor do que a notação de linha. Se houver melhorias que sejam funcionais e não apenas estilísticas, me avise.