So löschen Sie jede zweite Zeile in Excel 2007

So löschen Sie jede zweite Zeile in Excel 2007

Ich habe eine Tabelle, die nach einer ID und einer berechneten Zelle sortiert ist. Ich sortiere das Blatt nach der ID und der berechneten Zelle und erhalte so Paare verwandter Zeilen. Ich möchte einfach die zweite Zeile jedes Paares auf dem gesamten Blatt löschen. Normalerweise gibt es etwa 3000 Zeilen.

Gibt es eine einfache Möglichkeit, die zweite Zeile zu löschen oder in ein anderes Blatt zu verschieben?

Antwort1

Keine Programmierantwort, da Sie sagten, Sie seien mit VBA in Excel nicht vertraut, aber wenn es ein einmaliges Problem ist, dann machen Sie es einfach in Excel:

  1. Fügen Sie eine neue Spalte hinzu (sagen wir A)
  2. Stellen Sie die erste Zeile (A1) aufTrue
  3. Setzen Sie Zeile A2 auf=NOT(A1)
  4. Ziehen Sie dann Zeile A2 nach unten zu allen Ihren Zeilen.

Wenden Sie dann einen automatischen Filter dort an, wo die Spalte Aist false, wählen Sie alle zurückgegebenen Zeilen aus und löschen Sie sie, und entfernen Sie dann den Filter.

Antwort2

Wenn es sich um eine einmalige Aufgabe handelt, verwenden Sie Sephs Antwort. Wenn es wiederholt werden muss, verwenden Sie VBA wie folgt:

Sub DemoDeleteAlternateRows()
    Dim iRow As Long, LastRow As Long
    Dim sh As Worksheet
    Set sh = ActiveSheet ' <-- Maybe change this to refer to a specific sheet
    Application.FindFormat.Clear ' Just in case Find was last used with a Format
    LastRow = sh.Cells.Find(What:="*", After:=sh.Cells(1, 1), _
      SearchDirection:=xlPrevious, SearchOrder:=xlByRows, SearchFormat:=False).Row
    For iRow = LastRow To 1 Step -1
        ' Delete even numberede rows (to delete odd numbered
        ' rows, instead use  If iRow Mod 2 = 1 Then).
        If iRow Mod 2 = 0 Then
            sh.Rows(iRow).Delete
        End If
    Next
End Sub

Stellen Sie sicher, dass Sie vor dem Ausführen eine Sicherungskopie erstellenbeliebigMakro auf Ihrem Blatt. Makros verwenden kein Rückgängig!

verwandte Informationen