Как удалить каждую вторую строку в Excel 2007

Как удалить каждую вторую строку в Excel 2007

У меня есть электронная таблица, упорядоченная по идентификатору и вычисляемой ячейке. Я сортирую лист по идентификатору и вычисляемой ячейке, таким образом получая пары связанных строк. Я просто хочу удалить вторую строку каждой пары на всем листе. Обычно там около 3000 строк.

Есть ли простой способ удалить или переместить вторую строку на другой лист?

решение1

Это не ответ по программированию, поскольку вы сказали, что не знакомы с VBA в Excel, но если это единичный случай, то просто сделайте это в 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

Перед запуском обязательно сделайте резервную копию.любоймакрос на вашем листе. Макросы не используют Отменить!

Связанный контент