我有一个按 ID 和计算单元格排序的电子表格。我按 ID 和计算单元格对工作表进行排序,从而得到相关行对。我只想删除整个工作表上每对的第二行。通常有大约 3000 行。
有没有简单的方法可以删除第二行或将其移动到另一张表?
答案1
由于您说您不熟悉 Excel 中的 VBA,因此这不是一个编程答案,但如果它是一次性的,那么只需在 Excel 中执行即可:
- 添加新列(假设为 A)
- 将第一行(A1)设置为
True
- 将 A2 行设置为
=NOT(A1)
- 然后将 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
确保在跑步前备份任何工作表上的宏。宏不使用撤消!