如何在 Excel 2007 中删除每隔一行

如何在 Excel 2007 中删除每隔一行

我有一个按 ID 和计算单元格排序的电子表格。我按 ID 和计算单元格对工作表进行排序,从而得到相关行对。我只想删除整个工作表上每对的第二行。通常有大约 3000 行。

有没有简单的方法可以删除第二行或将其移动到另一张表?

答案1

由于您说您不熟悉 Excel 中的 VBA,因此这不是一个编程答案,但如果它是一次性的,那么只需在 Excel 中执行即可:

  1. 添加新列(假设为 A)
  2. 将第一行(A1)设置为True
  3. 将 A2 行设置为=NOT(A1)
  4. 然后将 A2 行向下拖至所有行。

A然后应用列为的自动过滤器false,选择所有返回的行并删除它们,然后删除过滤器。

答案2

如果这是一次性任务,请使用 Seph 的答案。如果需要重复,请使用 VBA,如下所示:

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

确保在跑步前备份任何工作表上的宏。宏不使用撤消!

相关内容