Excel 2010 удалить каждые 57 (и еще 4) строки - PullRequest
0 голосов
/ 13 марта 2012

Мне нужен код макроса для удаления каждой 58-й строки и еще 4 строки после 57-й строки.т.е. мне нужно удалить номера строк 58,59,60,61 и 62-й (всего 5).

Мне нужно повторить этот шаблон на всем листе.Таким образом, после того, как макрос удаляет 58, 59, 60, 61 и 62-ю строки, ему необходимо удалить 115 116 167 118 и 119-ю строку (разница 57 между ними 115-57 = 58).

Я попытался найтив интернете, но не смог найти статью, соответствующую моим потребностям.Любая помощь будет оценена.

Спасибо.

Ответы [ 2 ]

4 голосов
/ 13 марта 2012

Для не кодового метода вы можете выбрать пустой столбец рядом с вашими данными и попробовать выполнить следующие действия:

  • Выберите диапазон, например, A57: A60 и введите X с помощью Ctrl + Enter для заполненияячейки
  • Выберите повторяющийся диапазон, например, A1: A60, и заполните до конца данные (или используйте копирование / вставку)
  • Нажмите Ctrl + Shift + \, чтобы выбрать все X 's (перейти к специальным ... различиям в столбцах или использовать автофильтр)
  • Выберите "Удалить"> "Строки листа" в разделе "Ячейки" на вкладке "Главная"

Все готово.Это также сохраняет стек отмены, поэтому при необходимости вы можете вернуться назад.

2 голосов
/ 13 марта 2012

В следующий раз, когда вы отправите вопрос, вы получите лучшее внимание и обратную связь, если, по крайней мере, вы попробовали что-то, что-нибудь действительно.Хороший первый шаг - запустить программу записи макросов в Excel, удалить несколько строк и проверить сгенерированный код.Оттуда, окончательное решение не очень далеко.

Sub deleteRows()

    Dim i As Long
    Dim maxRow As Long

    maxRow = ActiveSheet.UsedRange.Rows.Count

    For i = 58 To maxRow Step 52 'Step 52, not 57, because we delete 5 rows each time
        Range(Rows(i), Rows(i + 4)).Delete Shift:=xlUp
    Next i

End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...