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

Excel: Zeile löschen, wenn Zelle in bestimmter Spalte leer ist?

Advertisement

Ich bin ein völliger Excel-Neuling, bitte entschuldigen Sie mich, wenn dies etwas Einfaches ist. Ich habe viele Optionen durchgesehen, konnte aber nicht finden, was ich brauchte.

Im Grunde genommen möchte ich alle Zeilen löschen, die keinen Wert in Spalte C enthalten. Wie würde ich das machen?

Ich mache das gerade manuell für mehr als 5000 Produkte und das macht mich wahnsinnig.

Advertisement
Advertisement

Antworten (4)

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

Sie können dies sehr schnell tun, wenn die Zellen wirklich leer sind, indem Sie SpecialCells

Manuell

  • Spalte C wählen
  • F5 drücken, dann Special
  • Blanks prüfen, dann OK (siehe diesen Schritt auf dem Bild unten)
  • die jetzt markierten Zeilen löschen (e. g. Rechtsklick in Auswahl > Zellen löschen… > Ganze Zeile oder über die Multifunktionsleiste (siehe zweites Bild))

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 ist eine einfache manuelle Methode

  1. Wenden Sie eine Auto Filter auf Ihr Blatt an. 2. Filtern Sie auf Spalte C Leerzeichen
  2. Markieren Sie alle sichtbaren Zeilen
  3. Zeilen löschen
  4. Filter entfernen

Dieser Vorgang kann bei Bedarf mit VBA automatisiert werden. Versuchen Sie, den Makrorecorder zu starten

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

Dies sollte funktionieren.

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

Sie können diesen Code in das Sheet-Modul eingeben (Klicken Sie mit der rechten Maustaste auf die Registerkarte “Sheet” und wählen Sie “Code anzeigen”):

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

Verwandte Fragen

6
13
9
10
8
Advertisement
Advertisement