Удаление каждой второй строки — макрос по автоматизации
,Советы вебмастерам, 5 комментариев
Задавались ли вы когда нибудь таким вопросом, а как удалить каждую четную строку? Лично у меня частенько возникает такая необходимость, особенно когда я провожу анализ конкурентов или создаю карту сайта. В поисках подобного решения я наткнулся (уже не помню где) на макрос удаления каждой второй строки. Он буквально в считанные секунды производит колоссальную рутинную работу.
Ниже я предоставлю образец кода макроса на языке Microsoft Visual Basic для приложений, который можно успешно использовать для удаления каждой второй строки в выбранном вами диапазоне ячеек на листе Microsoft Excel.
Инструкции по использованию кода
1. Создайте новую книгу Microsoft Excel.
2. На новом листе введите информацию, в которой мы будем удалять каждую вторую строку.
3. В меню Сервис выберите пункт Макрос, а затем команду Редактор Visual Basic.
4. Примечание. В Microsoft Office Excel 2007 выберите на вкладке Разработчик в группе Код элемент Visual Basic.
5. В меню Вставка выберите команду Модуль.
6. В новом модуле введите следующий макрос:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 | Sub Delete_Every_Other_Row() ' Переменные размерности. Y = False ' Измените значение на True, если необходимо ' удалить строки 1, 3, 5 и т.д. I = 1 Set xRng = Selection ' Цикл по всем строкам выделенного диапазона. For xCounter = 1 To xRng.Rows.Count ' Если Y = True, тогда... If Y = True Then ' ...удалить целую строку ячеек. xRng.Cells(I).EntireRow.Delete ' В противном случае... Else ' ...увеличить переменную I на единицу и продолжить выполнение цикла по диапазону ячеек. I = I + 1 End If ' Если Y = True, изменить значение на False; если Y = False, изменить значение на True. Y = Not Y Next xCounter End Sub |
7. Перейдите на лист с данными и выделите нужный диапазон ячеек.
8. Чтобы запустить макрос, выберите в меню Сервис пункт Макрос, а затем — пункт Макросы.
9. Примечание. В Excel 2007 выберите на вкладке Разработчик в группе Code элемент Макросы.
Примечание. Чтобы вывести на Ленту вкладку Разработчик, нажмите кнопку Microsoft Office, выберите Параметры Excel, затем — категорию Основные, установите флажок Показывать вкладку «Разработчик» на ленте и нажмите кнопку ОК.
10. Выберите макрос Delete_Every_Other_Row и нажмите кнопку Выполнить. Этот макрос удалит каждую вторую строку в выделенном диапазоне, начиная со второй.
Примечание. В случае, если список данных состоит из нескольких столбцов, выберите только первый столбец, а затем запустите макрос.
Метки: автоматизация, советы
Опубликовано 21.06.2012
Веду расчеты, бухгалтерские дела, это решение пришлось как раз к месту, благодарю 🙂
А у меня он почему-то убирает до упора (пока текста не останется) и цикл приходится прерывать насильно
Спасибо большое, у меня численные данные больше 1000 ячеек, нужно было сократить в 2 раза. Долго искала решения и очень помогла Ваша статья
Спасибо большое
очень странно он удаляет. У меня диапазон был на 1208 строк. Я специально расставил цифры чтобы проверить. Так он почему то до 806 удалял по три строки подряд через одну а после 806 оставил как есть.