
我有一個按 id 和計算單元格排序的電子表格。我按 id 和計算的儲存格對工作表進行排序,從而得到成對的相關行。我只想刪除整張紙上每對的第二行。通常大約有 3000 行。
有沒有簡單的方法可以刪除第二行或將第二行移到另一張紙?
答案1
這不是程式答案,因為您說您不熟悉 Excel 中的 VBA,但如果它是一次性的,那麼只需在 Excel 中執行即可:
- 新增一個新列(假設為 A)
- 將第一行 (A1) 設定為
True
- 將 A2 行設定為
=NOT(A1)
- 然後將 A2 行向下拖曳到所有行。
然後應用自動過濾器,其中 columnA
為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
運行前確保備份任何巨集在您的工作表上。巨集不使用撤銷!