Excel: Apagar linha se a célula em determinada coluna estiver em branco?

18

Eu sou um novato completo no Excel, então, por favor, me desculpe se isso é algo fácil de fazer. Eu examinei muitas opções, mas não consegui encontrar o que precisava.

Basicamente, eu quero excluir todas as linhas que não contêm um valor na coluna C. Como eu faria isso?

Estou fazendo isso manualmente agora para mais de 5.000 produtos e isso está me enlouquecendo.

    
por John 15.09.2012 / 05:05

5 respostas

24

Você pode fazer isso muito rapidamente se as células estiverem realmente em branco usando SpecialCells

Manual

  • Selecione a coluna C
  • Pressione F5 e, em seguida, Special
  • Verifique Blanks e, em seguida, OK (veja esta etapa na foto na parte inferior)
  • Exclua as linhas agora selecionadas (por exemplo, clique com o botão direito na seleção > Excluir células ... > Linha inteira ou pela faixa de opções (ver segunda captura de tela) )

VBA

Sub QuickCull()
    On Error Resume Next
    Columns("C").SpecialCells(xlBlanks).EntireRow.Delete
End Sub

    
por 15.09.2012 / 08:08
7

Aqui está um método manual fácil

  1. Aplique um Auto Filter à sua planilha
  2. Filtrar na coluna C em branco
  3. Selecionar todas as linhas visíveis
  4. Excluir linhas
  5. Remover filtro

Esse processo pode ser automatizado com o VBA, se necessário. Tente executar o gravador de macros para começar

    
por 15.09.2012 / 05:41
2

Acho que a coisa mais fácil presumindo que você não tenha muitas outras fórmulas nas outras células é apenas ordenar tudo pela Coluna C e depois excluir todas as linhas que tenham um espaço em branco para a coluna C (a função de classificação colocará os valores em branco para a coluna C no topo do arquivo).

Em resumo:

  • Clique na célula de papel dobrado acima da célula marcada com "1" e à esquerda da célula marcado "A" (para realçar todos)
  • Clique em Dados e, em seguida, ordene
  • Classifique pela coluna C e faça com que os menores valores sejam os primeiros
  • Basta destacar as linhas até chegar na primeira linha com um valor para Coluna C e exclua tudo o que você destacou
por 15.09.2012 / 06:54
0

Isso deve funcionar.

Columns("C:C").Select
Set rngRange = Selection.CurrentRegion
lngNumRows = rngRange.Rows.Count
lngFirstRow = rngRange.Row
lngLastRow = lngFirstRow + lngNumRows - 1
lngCompareColumn = ActiveCell.Column
For lngCurrentRow = lngLastRow To lngFirstRow Step -1
If (Cells(lngCurrentRow, lngCompareColumn).Text = "") Then _
Rows(lngCurrentRow).Delete
Next lngCurrentRow
    
por 19.02.2016 / 17:18
-1

Você pode colocar este código no Módulo de Folha (Guia da Página de Clique do Mouse Direita e selecione "Visualizar Código"):

Sub Delete_Blank_Rows()


'Deletes the entire row within the selection if the ENTIRE row contains no data.

'We use Long in case they have over 32,767 rows selected.

Dim i As Long
Dim LastRow As Integer

'We turn off calculation and screenupdating to speed up the macro.

 With Application
     .Calculation = xlCalculationManual
     .ScreenUpdating = False

     'Reduce the work on the calc and define the range

     LastRow = Range("A" & Rows.Count).End(xlUp).Row
     Range("A2:A" & LastRow).Select

     'We work backwards because we are deleting rows.

     For i = Selection.Rows.Count To 1 Step -1
          If WorksheetFunction.CountA(Selection.Rows(i)) = 0 Then
              Selection.Rows(i).EntireRow.Delete
          End If
     Next i

    .Calculation = xlCalculationAutomatic
    .ScreenUpdating = True
End With

End Sub
    
por 22.03.2015 / 12:48