2012-09-15 03:05:46 +0000 2012-09-15 03:05:46 +0000
24
24
Advertisement

Excel: Verwijder rij als cel in bepaalde kolom leeg is?

Advertisement

Ik ben een complete nieuweling in Excel dus excuseer me als dit iets eenvoudigs is om te doen. Ik heb veel opties bekeken maar kon niet vinden wat ik nodig had.

In principe wil ik alle rijen verwijderen die geen waarde bevatten in kolom C. Hoe zou ik dit doen?

Ik doe dit nu handmatig voor 5000+ producten en het maakt me krankzinnig.

Advertisement
Advertisement

Antwoorden (4)

34
34
34
2012-09-15 06:08:10 +0000

U kunt dit zeer snel doen als de cellen echt leeg zijn met behulp van SpecialCells

Handboek

  • Selecteer Kolom C
  • Druk op F5, dan Special
  • Controleer Blanks, dan OK (zie deze stap in de foto onderaan)
  • Wis de rijen die nu geselecteerd zijn (e. g. rechtsklik in selectie > Verwijder cellen… > Entireer rij of via het lint (zie tweede screenshot))

VBA

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

9
9
9
2012-09-15 03:41:57 +0000

Hier is een eenvoudige handmatige methode

  1. 1. Breng een Auto Filter aan op uw vel
  2. 2. Filter op kolom C blanco
  3. Selecteer alle zichtbare rijen
  4. 4. Verwijder rijen
  5. Verwijder filter

Dit proces kan desgewenst worden geautomatiseerd met VBA. Probeer de macrorecorder uit te voeren om een begin te maken.

0
Advertisement
0
0
2016-02-19 16:18:47 +0000
Advertisement

Dit zou moeten werken.

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
-1
-1
2015-03-22 11:48:37 +0000

U kunt deze code in Sheet Module (rechter muisklik Sheet Tab en selecteer “View Code”):

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
Advertisement

Gerelateerde vragen

5
6
13
9
10
Advertisement