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


23

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

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

No momento, estou fazendo isso manualmente para mais de 5000 produtos e isso está me deixando louco.


2
Por que uma pergunta feita no Stack OverFlow com soluções VBA foi migrada para Superusuário?
brettdj

Respostas:


31

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

Manual

  • Selecionar coluna C
  • Pressione F5, entãoSpecial
  • Verifique Blanks, então OK(veja esta etapa na foto na parte inferior)
  • Exclua as linhas que estão selecionadas agora (por exemplo, clique com o botão direito do mouse na seleção> Excluir células ... > Linha inteira ou através da faixa de opções (consulte a segunda captura de tela))

VBA

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

Captura de tela mostrando o menu Ir para especial -> Espaços em branco Captura de tela mostrando como usar a faixa de opções para excluir linhas inteiras na seleção


8

Aqui está um método manual fácil

  1. Aplique um Auto Filterna sua planilha
  2. Filtrar na coluna Em Cbranco
  3. Selecione 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 macro para começar


Simples, mas eficaz. Maravilhas do trabalho!
Tiana987642

2

Eu acho que a coisa mais fácil supondo que você não tenha várias outras fórmulas nas outras células é apenas classificar tudo pela coluna C e excluir todas as linhas que estiverem em branco na coluna C (a função de classificação colocará os valores em branco para a coluna C na parte superior do arquivo).

Em suma:

  • Clique na célula de papel dobrada acima da célula marcada com "1" e à esquerda da célula marcada com "A" (para destacar tudo)
  • Clique em Dados e, em seguida, classifique
  • Classifique pela coluna C e faça com que os menores valores sejam os primeiros
  • Apenas destaque as linhas para baixo até atingir a primeira linha com um valor para a Coluna C e exclua tudo o que destacou

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

-1

Você pode colocar esse código no Módulo de planilha (clique com o botão direito do mouse na guia Planilha 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

11
Isso exclui linhas em que a linha inteira está em branco? -se sim, é semelhante à resposta @drnewman. A pergunta especifica especificamente: Exclua a linha se a célula em determinada coluna estiver em branco.
22715 Davidenko

Bem-vindo ao Super Usuário! Por favor, leia a pergunta novamente com atenção. Sua resposta não responde à pergunta original.
DavidPostill
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.