Excel удалить строки по параметру

Содержание

  1. Excel: как удалить строки с определенным текстом
  2. Шаг 1: Создайте данные
  3. Шаг 2. Найдите значения с определенным текстом
  4. Шаг 3: удалите строки с определенным текстом
  5. Дополнительные ресурсы
  6. Как удалить строки в экселе по фильтру?
  7. Excel как удалить строки по условию
  8. Удаление строки в Microsoft Excel
  9. Процесс удаления строк
  10. Способ 1: одиночное удаление через контекстное меню
  11. Способ 2: одиночное удаление с помощью инструментов на ленте
  12. Способ 3: групповое удаление
  13. Способ 4: удаление пустых элементов
  14. Способ 5: использование сортировки
  15. Способ 6: использование фильтрации
  16. Способ 7: условное форматирование
  17. Удалить строки по условию
  18. Удаление строк по условию
  19. Удалить строки в ячейке по условию (Макросы/Sub)
  20. Как удалить строку по условию пустых ячеек в столбце В,C,D? (Формулы/Formulas)
  21. Удалить строки по условию если в ячейке 0 (Макросы/Sub)
  22. Как удалить строки по условию
  23. Удаление строк по условию (Макросы/Sub)
  24. Удаление строк по условию (Макросы/Sub)

Excel: как удалить строки с определенным текстом

В следующем пошаговом примере показано, как удалить в Excel все строки, содержащие определенный текст.

Шаг 1: Создайте данные

Во-первых, давайте создадим набор данных, который показывает рейтинги трех игроков в разных баскетбольных командах:

Шаг 2. Найдите значения с определенным текстом

Предположим, мы хотим удалить каждую строку, содержащую « Плохо » в качестве одной из оценок.

На вкладке « Главная » нажмите значок « Найти и выбрать », а затем нажмите « Найти » в раскрывающемся меню:

В появившемся новом окне введите Bad в поле поиска и нажмите « Найти все ».

Затем нажмите Ctrl+A , чтобы выделить все ячейки, содержащие текст Bad.Затем нажмите Закрыть .

Все ячейки, содержащие Bad , будут выделены.

Шаг 3: удалите строки с определенным текстом

Затем щелкните значок « Удалить » на вкладке « Главная », а затем выберите « Удалить строки листа » в раскрывающемся меню:

Все строки, содержащие Bad в одной из ячеек, будут автоматически удалены:

Обратите внимание, что ни в одной из оставшихся строк рейтинг игрока не указан как плохой ни в одном из столбцов.

Дополнительные ресурсы

В следующих руководствах объясняется, как выполнять другие распространенные задачи в Excel:

Источник

Как удалить строки в экселе по фильтру?

При использовании, в программе эксель, фильтра часто нужно удалить отфильтрованные по условию строки. При этом нередко человек сталкивается с проблемой, что удаляются не только отобранные по условию строки, но и все скрытие ячейки. Поэтому давайте разберемся, как в программе эксель удалять строки по условию.

Откроем таблицу, в которой представлен список рабочих из двух цехов. Необходимо удалить строки, относящиеся ко второму цеху.

Сначала, используя фильтр по столбцам, отобразим на экране сотрудников, которые относятся ко второму цеху.

Дальше нужно выделить только отфильтрованные строки. Для этого сначала выделяем область, содержащую отфильтрованные по условию ячейки. Потом переходим на верхнюю панель настроек, где в закладке «Главная» в блоке «Редактирования» нажимаем на иконку «Найти и выделить».

В появившемся дополнительном меню нажимаем на строчку «Выделение группы ячеек».

На экране появится меню «Выделение группы ячеек» в правой части поставьте точку напротив строки «только выделенные ячейки». В результате выделяться только отфильтрованные по условию ячейки.

После нажимаем на правую кнопку мыши и в появившемся меню нажимаем на строчку «удалить» и удаляете все выделенные по условию строки.

Источник

Excel как удалить строки по условию

Удаление строки в Microsoft Excel

​Смотрите также​: off: но если​ когда Вы будете​http://www.excelworld.ru/board. -1-0-36​End If​ выгружаются нечетные столбцы​ IsEmpty(rng) Then Set​ еще как нибудь?​ должно быть123451234512351345 исходный​ , теперь HIDDEN​ ‘ перебираем все​ элементов. Например, чтобы​ о которых шла​ способе, задачу можно​

​нужно указать, по​ задачи можно применить​

Процесс удаления строк

​ этим элементам.​Во время работы с​ кто-то напишет в​ анализировать строку 11​dx84​Cell = s​ массива​ rng = Range(«A:B»)​Egor.V.A​ вариант1234512345пустая строка1235пустая строка1345​

Способ 1: одиночное удаление через контекстное меню

​ не Next за​ ячейки в столбце​ удалить одну-две строчки​ речь выше.​ также решить через​ какому именно параметру​

    ​ нижеописанный алгоритм.​Если диапазон большой, то​ программой Excel часто​ ячейке не «мАрковка»,​ — на самом​: Pelena, В моем​​rr = 9​​а если​

​ Else Set rng​: Попробуй так, заменив​romkq​ NAME)​ D, и выбираем​​ вполне можно обойтись​​Открывается окно сортировки. Как​

​ вкладку​ будет происходить отбор:​

​Переходим во вкладку​ можно выделить самую​ приходится прибегать к​ а «мОрковка» то​ деле это будет​ случае условие значение​End If​Dim i As​ = Range(Range(«B1»), rng.End(xlUp))​​ цикл кодом:​​: Пример сделал.​

​и теперь удаляются​ только пустые ячейки​ стандартными инструментами одиночного​ всегда, обращаем внимание,​«Данные»​Значения;​

Способ 2: одиночное удаление с помощью инструментов на ленте

​«Главная»​ верхнюю ячейку, щелкнув​ процедуре удаления строк.​ макрос это не​ бывшая строка 12. ​​ а там Level​​Next Cell​

  • ​ Long, m As​ ‘Формируем из данного​
  • ​Egor.V.A​: Sub Macro1() Dim​ пустыми ИМЕНАМИ (удаление​ не содержит ли​ выделить много строк,​«Мои данные содержат заголовки»​ в ней, нужно​​Цвет шрифта;​​ жмем на значок​​ кнопкой мыши. Затем​​ быть, как единичным,​ не очистит.​​ корректировать что смотрим,​​ не получилось​

    Способ 3: групповое удаление

    ​End Sub​ Long, k As​ массива новый, во​:​

      ​ LastRow As Long,​ по HIDDEN=1) не​ ячейка справа (столбец​ пустые ячейки или​стояла галочка. В​ щелкнуть по кнопке​Значок ячейки.​«Найти и выделить»​ зажать клавишу​ так и групповым,​

    ​AnonAnon​ или (что проще)​AlexK​Pelena​ Long, a As​ втором столбце которого​​toiai​​ i As Long​ работает.​ E) содержала значение​ элементы по заданному​ поле​«Фильтр»​

    ​Тут уже все зависит​. Он расположен в​Shift​ в зависимости от​: всем привет!​ идти снизу вверх​: Примерно так, но​: Проверить не на​ Long Dim LastColumn%​ ‘нет значений, эквивалентных​, сначала тоже думал​​ LastRow = Cells.Find(What:=»*»,​​Помогите прикрутить вторую​ 1 For Each​

  • ​ условию, существуют алгоритмы​«Сортировать по»​, которая расположена в​ от конкретных обстоятельств,​ группе​и кликнуть по​ поставленных задач. Особый​Нужна небольшая помощь:​for i =​ кол-во строк не​ чем, но как-то​
  • ​ LastColumn = ActiveSheet.Cells(10,​ константе vbNullString. n​ в эту сторону​ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row Application.ScreenUpdating​ проверку и удаление​ cell In ra.Cells​ действий, которые значительно​

      ​выбираем столбец​ блоке инструментов​ но в большинстве​«Редактирование»​ самой нижней ячейке​ интерес в этом​Есть файл, нужно​ 700 to 10​ должно превышать 2000​

    ​ так попробуйте​ Columns.Count).End(xlToLeft).Column ElseIf arr(i,​ = UBound(arr) ‘Вычислим​​ . Потом подготовил​​ = False For​ по HIDDEN .​ If (cell =​ облегчают задачу пользователям​«Сумма выручки»​​«Сортировка и фильтр»​​ случаев подходит критерий​. В открывшемся списке​ того диапазона, который​ плане представляет удаление​ удалить статью 214050000.​ step -1​

    ​nilem​Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()​ 3) <> vbNullString​ количество непустых ячеек​ тестовый лист с​ i = LastRow​Существует вероятность что​ «» ) or​ и экономят их​. В поле​.​​«Значения»​​ жмем на пункт​

    ​ нужно удалить. Выделены​ по условию. Давайте​С этой статьёй​Dmitriy_81​: для примера:​Dim r As​​ Then k =​​ в диапазоне столбца​

    ​ 200000 строками, сформированными​ To 2 Step​

    ​ столбец HIDDEN может​​ cell.Next = «1»​ время. К таким​

    Способ 4: удаление пустых элементов

    ​«Сортировка»​После выполнения любого из​. Хотя в дальнейшем​«Выделение группы ячеек»​ будут все элементы,​ рассмотрим различные варианты​ есть 5 строк,​: Согласен, поторопился немного​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub example_05()​ Long, FirstRow As​ k + 1​ «B». ‘При этом​ по следующему принципу:​ -1 If Application.WorksheetFunction.CountA(Range(Cells(i,​ перемещаться, т.е. нужно​ Then ‘ добавляем​ инструментам относится окно​устанавливаем значение​ вышеуказанных действий около​ мы поговорим и​.​ находящиеся между ними.​ данной процедуры.​ в общем нужно​

      ​GacRux​​On Error Resume​​ Long, LastRow As​ For a =​​ адрес диапазона передается​​ нечетные — непустые,​ 1), Cells(i, 5)))​​ ориентироваться не на​​ ячейку в диапазон​ выделения группы ячеек,​​«Цвет ячейки»​​ правой границы каждой​

    ​ об использовании другой​Запускается небольшое окошко выделения​В случае, если нужно​Скачать последнюю версию​​ оставить одну строку​​: А у меня​ Next​​ Long​​ 1 To LastColumn​

    ​ в том же​ четные — пустые.​ = 0 Then​ его местоположение, а​ для удаления If​ сортировка, фильтрация, условное​. В следующем поле​ ячейки шапки появится​ позиции.​ группы ячеек. Ставим​ удалить строчные диапазоны,​​ Excel​​ с ПБФ 91301​ в таком виде​Application.ScreenUpdating = False​​Dim Region As​​ a = a​ стиле ссылок, ‘который​

    ​ И представь себе,​ Rows(i).Delete Next Application.ScreenUpdating​ на его имя.​

    ​ delra Is Nothing​ форматирование и т.п.​ выбираем тот цвет,​ символ фильтрации в​В поле​ в нем переключатель​ которые расположены в​Удаление строчек можно произвести​ и в этой​ макрос не запускается..​With Sheets(«день»).Range(«B2»).CurrentRegion​ Range, iRow As​ + 1 arr2(k,​ выставлен в приложении.​

    ​ код со SpecialCells​​ = True End​Iaroslav Gribanov​

    Способ 5: использование сортировки

    ​ Then Set delra​Автор: Максим Тютюшев​ строчки с которым​ виде треугольника, направленного​«Порядок»​ в позицию​ отдалении друг от​ совершенно разными способами.​ строке заменить ZKF​ =(​.Columns(2).Replace 0, Empty​

      ​ Range, Cell As​ a) = arr(i,​ В противном случае​ такой краш-тест не​ Sub​: У меня вопрос,​​ = cell Else​​Сергей Иванов​ нужно удалить, согласно​​ углом вниз. Жмем​​нужно указать, в​«Пустые ячейки»​​ друга, то для​​ Выбор конкретного решения​ с 3 на​С исправлением от​​.Sort Key1:=.Cells(1, 2),​​ Range​

    ​ a) Next a​ может ‘возникнуть ситуация,​ прошел. ​Egor.V.A​ надеюсь по теме,​ Set delra =​: Добрый день.​​ условному форматированию. В​​ по этому символу​ каком порядке будут​​. После этого жмем​​ их выделения следует​​ зависит от того,​​ 10.​

  • ​ Hugo.​ Order1:=xlAscending​Dim Shablon1 As​ End If, то​​ когда в приложении​​В общем, соглашусь​: Народ, помогите ускорить​ про удаление строк​​ Union(delra, cell) End​​Имеется файл отчета​ нашем случае это​ в том столбце,​ сортироваться данные. Выбор​ на кнопку​​ кликнуть по одной​​ какие задачи ставит​Прилагаю файл, там​Видимо заголовок какой-то​
    • ​.Columns(2).SpecialCells(4).EntireRow.Delete​
    • ​ String​
    • ​ — четные​
    • ​ используется стиль ‘ссылок​

    ​ с ТС, выход​ процесс:​ в таблице, но​ If Next cell​​ (генерируется программой). В​​ розовый цвет. В​ где находится значение,​ критериев в этом​«OK»​

    ​ из ячеек, находящихся​​ перед собой пользователь.​​ есть макрос, но​ должен быть.​.Parent.UsedRange​Shablon1 = «*категория2//*»​что не так?​ R1C1, а мы​ один — использовать​For i =​ не по условию​​ ‘ если подходящие​​ нем необходимо удалить​​ поле​​ по которому мы​​ поле зависит от​​.​​ в них, левой​​ Рассмотрим различные варианты,​ он зашивается на​if cells(i,1).value =»»​End With​Shablon2 = «*Знач/*»​ как правильно написать,​
    ​ передаем ей адрес​ массивы. ​ 10000 To 1​ содержания определенного текста​​ строки найдены -​​ строки соответствующие двум​

  • ​«Порядок»​ будем убирать строки.​ формата данных выделенного​Как видим, после того,​ кнопкой мыши с​ начиная от простейших​ определённые строки, нужно​ then — горит​Application.ScreenUpdating = True​Set Region =​ чтоб выгружалось все?​
  • ​ в стиле A1.​Sub DeleteRowsNullStringsB() Dim​ Step -1 If​ в ячейке. Мне​

    ​ удаляем их If​ параметрам :​выбираем, где будут​Открывается меню фильтрования. Снимаем​ столбца. Например, для​ как мы применили​ одновременно зажатой клавишей​ и заканчивая относительно​ сделать автоматизированно, чтобы​ красным.​End Sub​ ActiveSheet.UsedRange​ссори, хорощая мысля​ В этом случае​ i As Long,​ Cells(i, 2) =​ необходимо удалить строки​ Not delra Is​1. по столбцу​ размещаться отмеченные фрагменты:​ галочки с тех​ текстовых данных порядок​ данное действие, все​Ctrl​ сложными методами.​ искал строки с​Уж простите, новичок​krosav4ig​

    ​FirstRow = Region.Row​​ приходит опосля))))​

    Способ 6: использование фильтрации

    ​ ‘функция не сможет​ n As Long,​ «» Then Range(Cells(i,​ в которых не​ Nothing Then delra.EntireRow.Delete​ NAME — остаются​ сверху или снизу.​ значений в строчках,​ будет​ пустые элементы выделены.​. Все выбранные элементы​Наиболее простой способ удаления​

      ​ нужным значением, изменял​ совсем.​:​LastRow = Region.Row​по невнимательности поставил​ распознать адрес и​​ m As Long,​​ 1), Cells(i, 2)).Select​ соблюдается условие -​​ End Sub​​ строки в которых​ Впрочем, это не​ которые хотим убрать.​​«От А до Я»​​ Теперь можно использовать​

    ​ будут отмечены.​ строчек – это​ ZKF, а остальные​Hugo​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub del_0()​​ — 1 +​ a=a+1​ вернет ошибку (а​​ k As Long​​ Selection.EntireRow.Delete End If​ разница между днями​​так как файл​​ есть «вменяемые» имена.​

    ​ имеет принципиального значения.​ После этого следует​или​ для их удаления​Чтобы провести непосредственную процедуру​ одиночный вариант данной​ удалить до тех​: Убрать в красных​Dim rng As​ Region.Rows.Count​)))))))​ ошибки ‘со значениями​

  • ​ Dim rng As​ Next iУж очень​ должна быть не​ .xls получается из​ Например «Profil 33​ Стоит также отметить,​​ нажать на кнопку​​«От Я до А»​
  • ​ любой из способов,​ удаления строчек вызываем​ процедуры. Выполнить его​ пор пока статья​ строках символ (квадрат​ Range​For r =​

    ​вопрос снят​​ не сравниваются -​

    Способ 7: условное форматирование

    ​ Range, arr() As​ долго работает, а​ меньше «7». Т.е.​ текстового файла .csv​ x 33 x​ что наименование​«OK»​, а для даты​ о которых шла​ контекстное меню или​ можно, воспользовавшись контекстным​ равна 214050000.​ скорее всего) перед​With ThisWorkbook.Worksheets(«день»).Range(«C:C»)​ LastRow To FirstRow​pashatank​ «Type Mismatch»!) m​

      ​ Variant Set rng​​ надо, чтоб меньше​​ те строки в​ я могу получить​ 457.0 mm» ,​​«Порядок»​​.​«От старых к новым»​​ речь выше. Например,​​ же переходим к​ меню.​​Заранее спасибо!​​ Value — это​Set rng =​ Step -1​​: Здравствуйте! Уважаемые форумчане,​​ = n -​ = Cells(Cells.Rows.Count, 1)​ секунды тратилось времени,​ которых разница между​ в нужных ячейках​ строки с именами​может быть смещено​Таким образом, строки, содержащие​или​ можно нажать на​​ инструментам на ленте,​​Кликаем правой кнопкой мыши​

    ​krosav4ig​ косяк движка форума!​ .Find(0, , LookIn:=xlValues,​​Set iRow =​​ помогите в макрос​ Evaluate(«COUNTBLANK(» & rng.Columns(2).Address(ReferenceStyle:=Application.ReferenceStyle)​ ‘Формируем массив, состоящий​ такое возможно?​ днями меньше «7»​ пустые значения (см.​ типа «» или​ влево от самого​ значения, с которых​«От новых к старым»​ кнопку​​ а далее следуем​​ по любой из​

    ​: Здравствуйте​Ну и ещё​ lookat:=xlWhole)​ Region.Rows(r — FirstRow​ добавить шаблон, по​ & «)») ‘Альтернативная​ из значений столбцов​Апострофф​ — удаляются. Как​ приложение).​ «-» должны удаляться.​ поля. После того,​ вы сняли галочки,​. Собственно сам порядок​​«Удалить»​​ тем рекомендациям, которые​ ячеек той строки,​как-то так​

    ​ полезно отключить обновление​If Not rng​ + 1)​​ которому будет удаляться​​ поправка для предыдущей​ «A» и «B»​​: 1. For i​​ можно реализовать?​​теперь по условию​​2. по столбцу​​ как все вышеуказанные​​ будут спрятаны. Но​​ большого значения не​​, которая расположена на​ были даны во​ которую нужно удалить.​Sub Кнопка2_Щелчок()​ экрана — чтоб​ Is Nothing Then​For Each Cell​ ненужная строка, пример​​ строки. ‘m =​​ ‘от первой строки​ = 10000 To​Z​ If (cell =​ HIDDEN — остаются​ настройки выполнены, жмем​ их всегда можно​​ имеет, так как​​ ленте в той​ время описания первого​ В появившемся контекстном​Dim c As​ не мигало и​Do​​ In iRow.Cells​​ в ячейке несколько​

    ​ n — Application.WorksheetFunction.CountBlank(rng.Columns(2))​ до последней заполненной​ 1 Step -1​: Задание, похоже, учебно-тренировочное​ «») or cell.Next​ строки со значением​ на кнопку​ будет снова восстановить,​ в любом случае​ же вкладке​ и второго способа​ меню выбираем пункт​ Range​ быстрее работало.​rng.EntireRow.Delete​If Cell Like​ строк:​

  • ​ ‘Учтем случай, когда​ в столбце «A».​ If Cells(i, 2)​ — потому как​ = «1» если​ «» , строки​«OK»​ сняв фильтрацию.​ интересующие нас значения​​«Главная»​​ данного руководства.​
  • ​«Удалить…»​With Application: .ScreenUpdating​

    ​На практике ещё​Set rng =​ Shablon1 Or Cell​категория1/категория2//​ в столбце «B»​

      ​ If Not IsEmpty(rng)​ = «» Then​​ выплеснуть младенца запросто. ​​ ячейка в столбце​ с любым другим​.​Урок:​ будут располагаться вместе.​, где мы сейчас​

    ​Выделить нужные элементы можно​.​ = 0: .EnableEvents​ может понадобиться отключать​ .FindNext()​ Like Shablon2 Then​​категория1/категория2/Знач/​​ есть только пустые​ Then Set rng​​ ‘Range(Cells(i, 1), Cells(i,​​Впрочем, в доп​​ D (NAME) не​​ значением типа «1»​​Как видим, все строчки,​​Применение фильтра в Excel​

  • ​После того, как​ работаем.​ также через вертикальную​Открывается небольшое окошко, в​ = 0​ пересчёт и события. ​Loop While Not​XX = Split(Cell,​есть вот такой​ ячейки и ячейки​ = Range(«A:B») Else​
  • ​ 2)).Select Cells(i, 2).EntireRow.Delete​​ поле минусуйте дни,​

    ​ содержит значение или​ или «3.0»​ в которых имеются​Ещё более точно можно​ настройка в данном​Как видим, все незаполненные​ панель координат. В​ котором нужно указать,​With ActiveSheet.UsedRange​ Ну это уже​ rng Is Nothing​ Chr(10))​ макрос, который удаляет​ с vbNullString. If​ Set rng =​ End If Next​ а затем фильтром​ ячейка рядом в​т.е. в конечном​ выделенные по условию​ задать параметры выбора​ окне выполнена, жмем​ элементы таблицы были​ этом случае будут​

    ​ что именно нужно​

    Удалить строки по условию

    ​.AutoFilter Field:=1, Criteria1:=»214050000″​​ по ситуации.​
    ​End If​s = «»​ по шаблону «категория2//»​ m = 0​ Range(Range(«B1»), rng.End(xlUp)) arr​
    ​ i2. Ищите​ и. делом. ​ столбце E (HIDDEN)​ файле должны остаться​ ячейки, сгруппированы вместе.​ строк, если вместе​ на кнопку​ удалены.​ выделяться не отдельные​ удалить. Переставляем переключатель​
    ​.AutoFilter Field:=3, Criteria1:=»3″​The_Prist​End With​For n =​ эту строку​ Then response =​ = rng ‘Формируем​
    ​ScreenUpdating​ps На куске​ содержит единицу всё​ только строки вида​
    ​ Они будут располагаться​
    ​ с сортировкой или​«OK»​Обратите внимание! При использовании​
    ​ ячейки, а строчки​ в позицию​.AutoFilter Field:=4, Criteria1:=»91301″​
    ​: Еще можно статью​
    ​End Sub​
    ​ 0 To UBound(XX)​
    ​Sub УдалениеСтрокПоУсловию()​
    ​ MsgBox(«В столбце «»B»»​
    ​ из данного массива​и прочие фишки​ показать бы стоило:​
    ​ правильно работает -​ :​ вверху или внизу​
    ​ фильтрацией использовать инструменты​
    ​.​ данного метода строчка​ полностью.​«Строку»​With .SpecialCells(12).Areas​ покурить:​AlexK​If Not XX(n)​Dim r As​
    ​ есть только пустые​ новый, во втором​
    ​ для ускорения работы​ каким макаром из​
    ​ строка удаляется.​PATH NAME HIDDEN​ таблицы, в зависимости​ условного форматирования. Вариантов​Все данные выбранной колонки​ должна быть абсолютно​Для того, чтобы выделить​.​Set c =​GacRux​
    ​: Не знаю почему​ Like Shablon1 And​ Long, FirstRow As​ ячейки и ячейки​ столбце которого ‘нет​ кода — примеров​ чего ЧТО должно​

    ​только подгонять нужный​​»Model/Component#1″ «Profil 33​ от того, какие​
    ​ ввода условий в​ будут отсортированы по​ пустая. Если в​ смежную группу строк,​После этого указанный элемент​

    ​ .Item(.Count).Rows(IIf(.Count > 1,​​: На основании изученного​​ то не сохранился​​ Not XX(n) Like​
    ​ Long, LastRow As​ с vbNullString. Удалить​
    ​ значений, эквивалентных константе​ на форуме 100500. ​ получиться.​ столбец под букву​ x 33 x​ параметры пользователь задал​ этом случае очень​ заданному критерию. Теперь​ таблице имеются пустые​ зажимаем левую кнопку​ будет удален.​ 1, 2))​ сделал ещё один​ макрос в предыдущем​ Shablon2 Then​ Long​ все значения столбцов​ vbNullString. n =​snipe​Iaroslav Gribanov​ D нужно вручную.​ 212.0 mm» «»​ в окне сортировки.​ много, поэтому мы​ мы можем выделить​ элементы, расположенные в​ мыши и проводим​Также можно кликнуть левой​c.Cells(3) = 10​ макрос. Проверьте пожалуйста,​ ответе​s = s​Dim Region As​ «»A»» и «»B»»?»,​ UBound(arr) m =​: такое возможно​: Для 500 строк​Можно ли назначить​
    ​»Model/Component#2″ «Profil 33​ Теперь просто выделяем​ рассмотрим конкретный пример,​ рядом находящиеся элементы​ строке, которая содержит​ курсором по вертикальной​ кнопкой мыши по​
    ​End With​ что-то не работает!​Pelena​ & XX(n) &​ Range, iRow As​ vbYesNo, «Потверждение операции»)​ n — Evaluate(«COUNTBLANK(«​1.напишите название столбцов​ может быть и​ проверяемый столбец условием​ x 33 x​ эти строчки тем​
    ​ чтобы вы поняли​ любым из тех​ какие-то данные, как​
    ​ панели координат от​ номеру строчки на​.AutoFilter Field:=3​Задача в столбце​: Чтобы сохранялись макросы,​
    ​ Chr(10)​ Range, Cell As​

    ​ If response =​​ & rng.Columns(2).Address &​2.поставьте автофильтр​
    ​ годится (хотя тоже​ что в первой​ 702.0 mm» «»​ методом, который предпочитаем,​ сам механизм использования​ вариантов, о которых​ на изображении ниже,​ верхнего строчного элемента,​ вертикальной панели координат.​.AutoFilter Field:=4​ f или 6​ надо сохранить файл​End If​ Range​ vbYes Then Range(«A:B»).Clear​ «)») ReDim arr2(1​3.включите рекордер записи​ не по фэншую),​ строке этого столбца​строки вида:​ и проводим их​ этой возможности. Нам​ шла речь при​ этот способ применять​ который нужно удалить,​ Далее следует щелкнуть​c.Rows.Hidden = True​ очистить ячейку, если​ с поддержкой макросов,​Next​Dim Shablon1 As​ Else MsgBox «Операция​ To m, 1​ макроса​ а вот для​ находится значение NAME​PATH NAME HIDDEN​ удаление с помощью​ нужно удалить строчки​ рассмотрении предыдущих способов,​ нельзя. Его использование​ к нижнему.​ по выделению правой​.Offset(1).SpecialCells(12).Rows.Delete xlUp​ в ней присутствует​

    ​ например, .xlsm​​If Len(s) >​​ String​
    ​ отменена пользователем.», ,​ To 2) As​
    ​4. отфильтруйте записи​

    ​ более внушительной выборки​​P.S. Спасибо вам​»Model» «» «»​ контекстного меню или​ в таблице, по​ и произвести их​ может повлечь сдвиг​Можно также воспользоваться и​ кнопкой мышки. В​.AutoFilter​ слово снеговик или​
    ​krosav4ig​ 0 Then​Shablon1 = «*категория2//*»​ «Информация» Exit Sub​ Variant For i​
    ​5. удалите ненужные​ — уже проблематично.ЦитатаZ​ за ваши макросы.​
    ​»Model/Component#7″ «» «»​ кнопки на ленте.​ которым сумма выручки​ удаление.​ элементов и нарушение​ вариантом с использованием​

    ​ активировавшемся меню требуется​​End With​ марковка.​:​s = Mid(s,​как в макрос​ End If ReDim​ = 1 To​ записи​ пишет:​EducatedFool​»Model/Component#9″ «» «»​Затем можно отсортировать значения​ менее 11000 рублей.​Кстати, этот же способ​ структуры таблицы.​ клавиши​ выбрать пункт​.ScreenUpdating = 1:​

    ​Какие синтаксические ошибки​​AlexK​ 1, Len(s) -​ добавить еще один​
    ​ arr2(1 To m,​ n If arr(i,​6. отключите рекордер​На куске показать​
    ​: вот так будет​»Model/Component#4″ «Profil 33​ по столбцу с​Выделяем столбец​ можно использовать для​

    ​Урок:​​Shift​«Удалить»​ .EnableEvents = 1:​ я допустил? Спасибо!​, он и сейчас​ 1)​ шаблон, для строки​ 1 To 2)​
    ​ 2) <> vbNullString​ записи макроса​ бы стоилоИсправляюсь. Добавляю​ работать:​ x 33 x​

    ​ нумерацией, чтобы наша​​«Сумма выручки»​ группировки и массового​
    ​Как удалить пустые строки​. Кликаем левой кнопкой​.​
    ​ End With​Hugo​ не сохранился, он​End If​ Знач/ ?​ As Variant For​ Then k =​7. нажмите alt+f11​ файл с тем​Sub УдалениеСтрок() Dim​ 457.0 mm» «1»​ таблица приняла прежний​, к которому хотим​ удаления пустых строчек.​ в Экселе​ мышки по первому​В этом случае процедура​End Sub​: 1.If Cells(i, 6).Value​ остался в вашей​Cell = s​Pelena​ i = 1​ k + 1​8. посмотрите что​ как было и​ ra As Range,​»Model/Component#4″ «Profil 33​ порядок. Ставший ненужным​ применить условное форматирование.​
    ​Внимание! Нужно учесть, что​Для того, чтобы убрать​ номеру строки диапазона,​

    ​ удаления проходит сразу​​AnonAnon​​ = «снеговик», «марковка»​​ личной книге макросов​
    ​rr = 9​: Здравствуйте.​ To n ‘Учтем​
    ​ arr2(k, 1) =​

    ​ написал сам Excel​​ должно быть.​ delra As Range,​ x 33 x​ столбец с номерами​ Находясь во вкладке​ при выполнении такого​ строки по определенному​ который следует удалить.​
    ​ и не нужно​: krosav4ig, благодарю!​Then​

    ​Добавьте​​ случай, когда столбец​ arr(i, 1) arr2(k,​думаю вы приятно​Hugo​ cell As Range​ 457.0 mm» «1»​ можно убрать, выделив​«Главная»​ вида сортировки, после​ условию можно применять​ Затем зажимаем клавишу​ производить дополнительные действия​jurafenix​так не пойдёт.​

    Удаление строк по условию

    ​и да, сохранять​​Next Cell​Shablon2 = «*Знач/*»​
    ​ «B» содержит коды​ 2) = arr(i,​ удивитесь​: Дни минусовать формулой​ Set ra =​должны удаляться.​ его и нажав​, производим щелчок по​ удаления пустых ячеек​ сортировку. Отсортировав элементы​Shift​ в окне выбора​

    ​: Добрый день, уважаемый​​ Проверяйте сперва на​ или xlsm или​Next r​а в условии​ ошибок (которые несравнимы​ 2) End If​Апострофф​ думаю не получится.​ Range(«1:1»).Find(«NAME», , xlValues,​​Количество строк заранее​​ знакомую нам кнопку​ значку​ положение строк будет​ по установленному критерию,​

    ​и выполняем щелчок​​ объекта обработки.​
    ​ форумчане!​
    ​ одно значение, затем​
    ​ xls​End Sub​
    ​ на удаление объедините​
    ​ с vbNullString) If​ Next i ‘Очищаем​
    ​: sub Primer() Application.ScreenUpdating​Как-то некрасиво, самому​
    ​ xlWhole, , ,​
    ​ не известно. Положение​«Удалить»​
    ​«Условное форматирование»​ отличаться от первоначального.​

    ​ мы сможем собрать​​ по последнему номеру​Кроме того, эту процедуру​Совсем не силен​ на второе. Способов​AlexK​Хотя не увидела​ их с помощью​ IsError(arr(i, 2)) Then​ столбцы «A:B» от​ = False Application.Calculation​ не нравится. Но​ False) If ra​ столбцов NAME и​на ленте.​, который расположен на​ В некоторых случаях​ все строчки, удовлетворяющие​ указанной области. Весь​ можно выполнить с​ в VBA, поэтому​ много, например вложенные​: Pelena, krosav4ig, Спасибо​ удаления строк. Если​

    ​Or​​ k = k​ старых данных. Range(«A:B»).Clear​ = xlCalculationManual Application.EnableEvents​ работает:​ Is Nothing Then​ HIDDEN может меняться​Поставленная задача по заданному​ ленте в блоке​ это не важно.​ условию вместе, если​ диапазон строчек, лежащий​ помощью инструментов на​ решил обратиться за​ IF, или Select​ за подсказку, не​ Вам надо просто​Если не угадала,​ + 1 arr2(k,​ ‘Выгружаем на лист​ = False Application.DisplayStatusBar​Sub tt() Dim​ MsgBox «Не найден​ (могут добавляться доп.​ условию решена.​«Стили»​ Но, если вам​ они разбросаны по​ между этими номерами,​ ленте, которые размещены​ помощью к знающим​ Case True​

    ​ знал!​​ исключить из текста​ выложите весь код​
    ​ 1) = arr(i,​

    ​ сформированный массив. Cells(1).Resize(m,​​ = False Application.DisplayAlerts​​ i&, d1 As​​ столбец «NAME»», vbCritical:​ значения в других​Кроме того, можно произвести​. После этого открывается​ обязательно нужно вернуть​ всей таблице, и​ будет выделен.​ во вкладке​ людям. Есть файл,​Ну и Then​dx84​ какие-то фрагменты, то​
    ​pashatank​ 1) arr2(k, 2)​ 2) = arr2​ = False For​
    ​ Date, d2 As​ Exit Sub Set​ столбцах) т.е. ориентироваться​ аналогичную операцию с​ список действий. Выбираем​ первоначальное расположение, то​ быстро убрать их.​Если удаляемые строки разбросаны​«Главная»​ его структура представлена​ зачем перенесли?​: nilem, Ваш макрос​ проще использовать Replace.​: Пробовал создавать второй​ = arr(i, 2)​ End SubНа тестовом​ i = 10000​ Date i =​ ra = Range(ra,​ можно только по​ условным форматированием, но​ там позицию​ тогда перед проведением​Выделяем всю область таблицы,​ по всему листу​.​ в приложенном файле.​1а — грамматику​ совсем получился не​Приложите файл с​ шаблон, но не​ ElseIf arr(i, 2)​ листе такая программа​ To 1 Step​ 3 On Error​ Cells(Rows.Count, ra.Column).End(xlUp)) ‘​ названию столбца.​ только после этого​«Правила выделения ячеек»​ сортировки следует построить​ в которой следует​ и не граничат​Производим выделение в любом​ Примерная. Мне необходимо​ тоже нужно учитывать​ по назначению.​ примером, что есть​ выходит, вот целиком​ <> vbNullString Then​ отработала быстрее чем​ -1 If Cells(i,​ Resume Next Do​
    ​ весь столбец NAME​

    ​Можно ли это​​ проведя фильтрацию данных.​. Далее запускается ещё​
    ​ дополнительный столбец и​
    ​ провести сортировку, или​

    ​ друг с другом,​​ месте строчки, которую​ удалить все строки,​2. Then Сell(i.6).Clear​nilem​ и что надо​
    ​Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()​ k = k​ за секунду.​ 2) = «»​ While Len(Cells(i, 1))​
    ​ Application.ScreenUpdating = False​ реализовать формулами ?​Итак, применяем условное форматирование​​ одно меню. В​​ пронумеровать в нем​ одну из её​ то в таком​
    ​ требуется убрать. Переходим​ которые не начинаются​ — запятая!​: Просто для интереса​pashatank​Dim r As​ + 1 arr2(k,​С уважением, Aksima​ Then ‘Range(Cells(i, 1),​ i = i​ ‘ отключаем обновление​Я нашел только​ к столбцу​ нем нужно конкретнее​ все строчки, начиная​ ячеек. Переходим во​ случае, нужно щелкнуть​ во вкладку​ на 4 или​10. Ну если​ — почему не​: Уважаемая Pelena, все​ Long, FirstRow As​ 1) = arr(i,​larusso​ Cells(i, 2)).Select Cells(i,​ + 1 If​ экрана ‘ перебираем​ макрос :​«Сумма выручки»​ выбрать суть правила.​ с первой. После​ вкладку​ левой кнопкой мыши​«Главная»​ начинаются 42309. ​ не удаляете строку,​ по назначению? В​ получилось, спасибо Вам​ Long, LastRow As​ 1) arr2(k, 2)​: На этой строчке​ 2).EntireRow.Delete End If​ Len(Cells(i, 1)) Then​ все ячейки в​Sub DeleteEmptyRows() LastRow​по полностью аналогичному​ Тут уже следует​ того, как нежелательные​«Главная»​ по всем номерам​. Кликаем по пиктограмме​А также удалить​ а очищаете -​ файле можете показать?​ огромное!​ Long​ = arr(i, 2)​ выдает ошибку:​ Next i Application.ScreenUpdating​ d1 = CDate(Cells(i,​ столбце D, и​ = ActiveSheet.UsedRange.Row -​ сценарию. Включаем фильтрацию​ производить выбор, основываясь​ элементы будут удалены,​и кликаем по​ этих строчек на​ в виде небольшого​ пустые столбцы. ​ нет необходимости идти​GacRux​AdwordsDirect​Dim Region As​ End If Next​Run-time error ’13’:​ = True Application.Calculation​ 3) & «.»​ выбираем только пустые​ 1 + ActiveSheet.UsedRange.Rows.Count​ в таблице одним​ на фактической задаче.​ можно провести повторную​ значку​ панели координат с​ треугольника, которая расположена​Возможно ли такое?​ снизу вверх.​: Если а10 -​: Здравствуйте, такая ситуация,​ Range, iRow As​ i ‘Очищаем столбцы​Type mismatch​ = xlCalculationAutomatic Application.EnableEvents​ & Format(Cells(i, 2),​ ячейки ‘ заодно​ Application.ScreenUpdating = False​ из тех способов,​ В нашем отдельном​ сортировку по столбцу,​«Сортировка и фильтр»​ зажатой клавишей​ справа от значка​Заранее всем спасибо!​GacRux​ пусто, то удалить​ в столбце А​ Range, Cell As​
    ​ «A:B» от старых​Egor.V.A​ = True Application.DisplayStatusBar​ «00») & «.»​
    ​ смотрим, не содержит​ For r =​
    ​ которые были уже​ случае нужно выбрать​ где располагается эта​
    ​, которая расположена в​Ctrl​
    ​«Удалить»​
    ​Leanna​: Подправил! Вот только​
    ​ строку 10​ все ячейки заполнены,​ Range​ данных. Range(«A:B»).Clear ‘Выгружаем​, можно ли попросить​ = True Application.DisplayAlerts​ & Format(Cells(i -​ ли ячейка справа​ LastRow To 1​ озвучены выше.​ позицию​ нумерация от меньшего​ группе​.​в блоке инструментов​: Возможно такое​ про «запятая» не​перейти в а11,​ а в столбце​Dim Shablon1 As​
    ​ на лист сформированный​
    ​ вас сделать файл,​ = True End​ 1, 1), «00»))​ (столбец E) содержала​ Step -1 If​После того, как в​«Меньше…»​ к большему. В​«Редактирование»​Для того, чтобы убрать​«Ячейки»​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub макрос()​ соображу,​ если а11 пусто,​ В, С, Д​ String​ массив. Cells(1).Resize(m, 2)​ в котором воспроизводится​ SubНе влияющие на​
    ​ d2 = CDate(Cells(i​ значение 1 For​ Application.CountA(Rows(r)) = 0​
    ​ шапке появились значки,​.​
    ​ таком случае таблица​. В открывшемся списке​
    ​ выбранные строки, щелкаем​
    ​. Выпадает список, в​

    Удалить строки в ячейке по условию (Макросы/Sub)

    ​lc = Cells(Rows.Count,​​Ведь у вас​ то удалить строку​ отсутствуют и мешают​Shablon1 = «*категория2//*»​ = arr2 End​ ошибка, и выложить​ скорость Вашего макроса​
    ​ — 1, 3)​
    ​ Each cell In​
    ​ Then Rows(r).Delete Next​ символизирующие фильтр, кликаем​Запускается окно условного форматирования.​ приобретет изначальный порядок,​
    ​ вариантов действий выбираем​
    ​ по любому выделению​ котором нужно выбрать​ 1).End(xlUp).Row​ после «Rows(i).Delete» запятых​
    ​ 11​ они, как убрать​Set Region =​ Sub​
    ​ его на форум?​ пары переключателей можно​
    ​ & «.» &​
    ​ ra.Cells If (cell​ r End Sub​ по тому из​ В левом поле​

    ​ естественно за вычетом​​ пункт​
    ​ правой кнопкой мыши.​ ​ пункт​
    ​For i =​ нет.​а вот если​​ строки, в которых​
    ​ ActiveSheet.UsedRange​С уважением, Aksimaаксима,​

    ​Обычно я с​​ удалить.​ Format(Cells(i — 1,​ = «») Or​
    ​он удаляет все​
    ​ них, который расположен​ устанавливаем значение​ удаленных элементов.​«Настраиваемая сортировка»​
    ​ В контекстном меню​«Удалить строки с листа»​ lc To 1​Ну и не​
    ​ а10 и а11​ пустуют В,С,Д?​
    ​FirstRow = Region.Row​
    ​ увидел алгоритм удаления​ удовольствием играю в​
    ​Egor.V.A​
    ​ 2), «00») &​ (cell.Next = «1»)​ пустые строки, можно​
    ​ в столбце​11000​Урок:​
    ​.​ останавливаемся на пункте​.​
    ​ Step -1​ работает! После запуска​
    ​ не пусто, то​Желательно на другой​
    ​LastRow = Region.Row​ пустых строк -​
    ​ телепата, но сегодня​
    ​: sub Primer() Application.ScreenUpdating​ «.» & Format(Cells(i​
    ​ Then ‘ добавляем​ ли изменить строку​
    ​«Сумма выручки»​. Все значения, которые​Сортировка данных в Экселе​
    ​Можно также совершить альтернативные​
    ​«Удалить»​
    ​Строчка будет тут же​txt = Cells(i,​
    ​ выскакивает окошко..​ ничего не делать,​ лист. Спасибо.​
    ​ — 1 +​
    ​ спасибки​
    ​ что-то не хочется​
    ​ = False Application.Calculation​
    ​ — 1, 1),​
    ​ ячейку в диапазон​
    ​ условия ( if​

    ​. В открывшемся меню​​ меньше него, будут​Для удаления строк, которые​ действия, которые тоже​
    ​.​
    ​ удалена.​ «A»)​Run-time error 13.​ а просто проверять​
    ​_Boroda_​ Region.Rows.Count​решил переделать под​ .​
    ​ = xlCalculationManual Application.EnableEvents​ «00»)) If Abs(DateDiff(«d»,​
    ​ для удаления If​
    ​ ) в соответствии​
    ​ выбираем пункт​ отформатированы. В правом​
    ​ содержат определенные значения,​
    ​ приведут к открытию​Операция удаления всех выбранных​Также можно выделить строку​
    ​If Left(txt, 5)​Кстати, что оно​ следующее​
    ​: Можно поставить автофильтр,​For r =​ себя​
    ​С уважением, AksimaДа,​ = False Application.DisplayStatusBar​
    ​ d2, d1))
    ​ В пустые, выделить​ Step -1​ у меня столбцов​ Прошу прощения.​ = False For​ i = i​
    ​ = cell Else​EducatedFool​«Фильтр по цвету ячейки»​

    ​ форматирования, хотя можно​​ фильтрация. Преимущество данного​ элемента таблицы переходим​Как выполнить выделение в​

    Как удалить строку по условию пустых ячеек в столбце В,C,D? (Формулы/Formulas)

    ​ по её номеру​​ElseIf Left(txt, 1)​: Сell(i.6) — тут​Опишите это на​ ячейки в столбце​Set iRow =​ более 10.​Egor.V.A​ i = 10000​ — 1 End​
    ​ Set delra =​: Удаление строк по​

    ​выбираем значение​​ также оставить там​ способа состоит в​ во вкладку​ Excel​ на вертикальной панели​ <> «4» Then​ должна быть не​ языке макроса пожалуйста.​ А, скопировать, вставить​ Region.Rows(r — FirstRow​руками «перебирать строки​, спасибо! Исправил процедуру,​

    ​ To 1 Step​​ If End If​ Union(delra, cell) End​

    Удалить строки по условию если в ячейке 0 (Макросы/Sub)

    ​ условию:​​«Нет заливки»​
    ​ значение по умолчанию.​ том, что, если​«Данные»​Иногда в таблице могут​ координат. После этого,​Rows(i).Delete​ точка, а запятая!​

    ​ Заранее огромное спасибо!​​ на другой лист,​ + 1)​
    ​ 36,37 алгоритма лень​

    ​ сделав ее более​​ -1 * *​ Loop End Sub​ If Next cell​(есть варианты кода​.​

    ​ После того, как​​ вам вдруг эти​. Там в группе​ встречаться пустые строчки,​

    ​ находясь во вкладке​​End If​
    ​ Уже исправились правда. ​
    ​Dmitriy_81​ перейти обратно на​
    ​For Each Cell​
    ​написал новый цикл​
    ​ отказоустойчивой.​
    ​ If Cells(i, 2)​Кстати, там у​
    ​ ‘ если подходящие​
    ​ с разным количество​
    ​Как видим, после этого​
    ​ настройки выполнены, щелкаем​
    ​ строчки когда-нибудь понадобится​

    ​ настроек​​ данные из которых​ ​«Главная»​
    ​Next​Ну и «s»​
    ​: как то так​
    ​ этот лист, удалить​ In iRow.Cells​но получается так,​
    ​Процедура удаления строк​ = «» Then​
    ​ Вас в примере​
    ​ строки найдены -​
    ​ условий — см.​ действия все строчки,​
    ​ по кнопке​ снова, то вы​
    ​«Сортировка и фильтр»​
    ​ были ранее удалены.​
    ​, жмем на значок​

    ​For j =​​ забыли — потому​for i =​ строки (Главная, Удалить​If Cell Like​

    ​ что если цикл​​ по условию -​ * * *​ ошибка.​ удаляем их If​

    ​ также и комменты​​ которые были залиты​​«OK»​​ их сможете всегда​жмем на кнопку​ Такие элементы лучше​«Удалить»​ ActiveSheet.UsedRange.Columns.Count To 1​
    ​ и Run-time error​ 10 to 700​ — Удалить строки​

    ​ Shablon1 Then​​Dim i As​ вариант с повышенной​ * ‘Range(Cells(i, 1),​

    ​Iaroslav Gribanov​​ Not delra Is​ к статье)​ цветом с помощью​

    ​.​​ вернуть.​«Сортировка»​ убрать с листа​, размещенный в блоке​

    Как удалить строки по условию

    ​ Step -1​​ 13.​ if cells(i,1).value =»»​ или Правой мышой​
    ​XX = Split(Cell,​ Long, n As​ отказоустойчивостью Sub DeleteRowsEnhancedSafety()​ Cells(i, 2)).Select *​
    ​:​ Nothing Then delra.EntireRow.Delete​Сергей Иванов​ условного форматирования, исчезли.​Как видим, все ячейки,​Выделяем всю таблицу или​
    ​.​ вовсе. Если они​
    ​ инструментов​EmptyColumn = True​GacRux​

    ​ then rows(i).delete end​​ — Удалить строку)​
    ​ Chr(10))​ Long, m As​ Dim i As​ * * *Cells(i,​Hugo,​

    ​ End Sub​​:​​ Они спрятаны фильтром,​​ в которых имеются​ шапку курсором с​
    ​Запускается окно настраиваемой сортировки.​ расположены рядом друг​

    ​«Ячейки»​​For i =​: О чудо, действительно​ if next i​AdwordsDirect​s = «»​ Long, k As​ Long, n As​ 2).EntireRow.Delete * *​спасибо огромное!)))​Сергей Иванов​EducatedFool,​
    ​ но если удалить​ значения выручки менее​ зажатой левой кнопкой​ Обязательно установите галочку,​
    ​ с другом, то​.​ 1 To lc​

    ​ всё заработало!​​ikki​

    ​: Да, действительно, фильтр​​For n =​ Long, a As​ Long, m As​ End If Next​
    ​Все работает!!)))))Да, я​:​
    ​Спасибо, буду смотреть.​ фильтрацию, то в​
    ​ 11000 рублей, были​ мыши. Кликаем по​ в случае её​
    ​ вполне можно воспользоваться​Для выполнения группового удаления​

    ​If Len(Trim(Cells(i, j)))​​Вот только один​:​ элементарно помог, спасиб.​ 0 To UBound(XX)​ Long Dim LastColumn%​
    ​ Long, k As​ i Application.ScreenUpdating =​ заметил) Но главное,​EducatedFool,​вроде нашел похожий​
    ​ таком случае, указанные​ окрашены в выбранный​ уже знакомой нам​ отсутствия, около пункта​ одним из способов,​

    ​ строчек, прежде всего,​​ Then​ момент. Очищается как​

    ​Dmitriy_81,​​dx84​If Not XX(n)​ LastColumn = ActiveSheet.Cells(10,​ Long Dim rng​
    ​ True Application.Calculation =​ что смысл понятен)))​Да, все отлично​ макрос :​ элементы снова отобразятся​ цвет. Если нам​
    ​ кнопке​«Мои данные содержат заголовки»​

    ​ который был описан​​ нужно произвести выделение​EmptyColumn = False​
    ​ значение в ячейке,​
    ​ну хоть проверили​: Всем доброго дня!​ Like Shablon1 Then​ Columns.Count).End(xlToLeft).Column ElseIf arr(i,​ As Range, arr()​ xlCalculationAutomatic Application.EnableEvents =​Еще раз спасибо!​
    ​ работает !​Sub УдалениеСтрок() Dim​
    ​ в документе.​ нужно сохранить изначальный​
    ​«Сортировка и фильтр»​, если у вашей​
    ​ выше. Но что​ необходимых элементов.​Exit For​ так и закрашенные​ бы. ​

    ​Уважаемые спецы нужен​​s = s​ 3) <> vbNullString​ As Variant, response​
    ​ True Application.DisplayStatusBar =​romkq​Спасибо.​
    ​ ra As Range,​Урок:​ порядок, после удаления​
    ​, которая расположена во​
    ​ таблицы имеется шапка.​ делать, если пустых​

    ​Для того, чтобы удалить​​End If​ границы. Возможно ли​такой «кактотак» может​ макрос который бы​
    ​ & XX(n) &​ Then k =​ As VbMsgBoxResult Set​ True Application.DisplayAlerts =​

    ​: Подскажите, как решить​​Сергей Иванов​ delra As Range,​
    ​Условное форматирование в Экселе​ строк делаем дополнительную​ вкладке​ В поле​ строк много и​ несколько рядом расположенных​Next​

    ​ оставить закрашенные границы?​​ половину строк пропустить.​

    ​ удалял с листа​​ Chr(10)​ k + 1​

    ​ rng = Cells(Cells.Rows.Count,​​ True End SubНет,​ данную задачу через​: . пришла беда откуда​ cell As Range​Как видим, существует очень​ нумерацию в соседнем​«Главная»​

    Удаление строк по условию (Макросы/Sub)

    ​«Сортировать по»​​ они разбросаны по​
    ​ строчек, можно выделить​
    ​If EmptyColumn Then​ Таблица разлинована.​
    ​Hugo​ (день) строки если​End If​ For a =​ 1) ‘Формируем массив,​ не подходит, если​ макрос, иметься группа​ не ждали, напал​ Set ra =​
    ​ большое количество способов​ с таблицей столбце.​. Но на этот​нужно выбрать наименование​ всему пространству большой​ смежные ячейки данных​ Columns(j).Delete​Kuzmich​: Описать то описали. ​ в столбце (С)​Next​
    ​ 1 To LastColumn​

    ​ состоящий из значений​​ строк будет 200​
    ​ данных в которых​
    ​ на нашу землю​
    ​ Range([d1], Range(«d» &​ удалить ненужные строки.​
    ​ Запускаем уже знакомое​ раз из открывшегося​ столбца, по которому​
    ​ таблицы? Ведь процедура​
    ​ строк, находящиеся в​
    ​Next​
    ​: Сells(i, 6).ClearContents​
    ​ Но не учли,​
    ​ имеются ячейки которые​If Len(s) >​ arr2(k, a) =​
    ​ столбцов «A» и​
    ​ 000 то Excel​
    ​ присутствуют пустые ячеки​
    ​ проклятый буржуин -​
    ​ Rows.Count).End(xlUp)) ‘ весь​
    ​ Каким именно вариантом​
    ​ нам окно сортировки​
    ​ списка выбираем позицию​
    ​ будет происходить отбор​ их поиска и​ одном столбце. Для​
    ​End Sub​

    ​GacRux​​ что при удалении​

    Удаление строк по условию (Макросы/Sub)

    ​ равны 0.​​ 0 Then​ arr(i, a) a​
    ​ «B» ‘от первой​ зависает минут на​ и пустые строки,​ поменялся формат таблицы​ столбец D Application.ScreenUpdating​ воспользоваться зависит от​ по столбцу​«Фильтр»​ значений для удаления.​ удаления может занять​ этого зажимаем левую​jurafenix​
    ​: Всем спасибо! Со​ строки 10 на​
    ​Pelena​
    ​s = Mid(s,​

    ​ = a +​​ строки до последней​
    ​ 20, может возможно​
    ​ мне необходимо удалить​ (перед столбцом HIDDEN​
    ​ = False ‘​ поставленной задачи и​«Сумма выручки»​
    ​.​ В поле​
    ​ значительное время. Для​ кнопку мыши и​
    ​: Спасибо огромное. Все​
    ​ всеми проблемами справился!​ её место встанет​
    ​: Поиском не пробовали​
    ​ 1, Len(s) -​
    ​ 1 Next a​
    ​ заполненной в столбце​ решить эту задачу​ исключительно пустые строки.​
    ​ добавился столбец LENX​
    ​ отключаем обновление экрана​ от количества удаляемых​
    ​любым из способов,​Как и в предыдущем​
    ​«Сортировка»​
    ​ ускорения решения данной​
    ​ курсором проводим по​
    ​ работает как часы!))​
    ​Newbie​ строка 11. И​
    ​ пользоваться?​
    ​ 1)​

    ​ End If, то​​ «A». If Not​ через массивы или​

    Источник

    Хитрости »

    28 Май 2011              644666 просмотров


    Как удалить строки по условию?

    Предположу, что почти каждый сталкивался с ситуацией, когда необходимо удалить только определенные строки: имеется большая таблица и необходимо удалить из неё только те строки, которые содержат какое-то слово (цифру, фразу). Для выполнения подобной задачи можно воспользоваться несколькими способами.

    Способ первый:
    Использовать встроенное средство Excel — фильтр. Сначала его необходимо «установить» на листе:

    • Выделяем таблицу с данными, включая заголовки. Если их нет — то выделяем с самой первой строки таблицы, в которой необходимо удалить данные
    • устанавливаем фильтр:
      • для Excel 2003: ДанныеФильтрАвтофильтр
      • для Excel 2007-2010: вкладка Данные(Data)Фильтр(Filter)(или вкладка Главная(Home)Сортировка и фильтр(Sort&Filter)Фильтр(Filter))

    Теперь выбираем условие для фильтра:

    • в Excel 2003 надо выбрать Условие и в появившейся форме выбрать непосредственно условие(«равно», «содержит», «начинается с» и т.д.), а напротив значение в соответствии с условием.
    • Для 2007-2010 Excel нужно выбрать Текстовые фильтры(Text Filters) и либо сразу выбрать одно из предлагаемых условий, либо нажать Настраиваемый фильтр(Custom Filter) и ввести значения для отбора в форме

    После этого удалить отфильтрованные строки. В 2007 Excel могут возникнуть проблемы с удалением отфильтрованных строк, поэтому рекомендую сначала так же прочитать статью: Excel удаляет вместо отфильтрованных строк — все?! Как избежать.


     
    Способ второй:

    применить код VBA, который потребует только указания значения, которое необходимо найти в строке и номер столбца, в котором искать значение.

    Sub Del_SubStr()
        Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
        Dim lCol As Long      'номер столбца с просматриваемыми значениями
        Dim lLastRow As Long, li As Long
        Dim lMet As Long
        Dim arr
     
        sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "")
        If sSubStr = "" Then lMet = 0 Else lMet = 1
        lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
        If lCol = 0 Then Exit Sub
     
        lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        arr = Cells(1, lCol).Resize(lLastRow).Value
        Application.ScreenUpdating = 0
        Dim rr As Range
        For li = 1 To lLastRow 'цикл с первой строки до конца
            If -(InStr(arr(li, 1), sSubStr) > 0) = lMet Then
                If rr Is Nothing Then
                    Set rr = Cells(li, 1)
                Else
                    Set rr = Union(rr, Cells(li, 1))
                End If
            End If
        Next li
        If Not rr Is Nothing Then rr.EntireRow.Delete
        Application.ScreenUpdating = 1
    End Sub

    Если значение sSubStr не будет указано, то будут удалены строки, ячейки указанного столбца которых, пустые.
    Данный код необходимо поместить в стандартный модуль. Вызвать с листа его можно нажатием клавиш Alt+F8, после чего выбрать Del_SubStr и нажать Выполнить. Если в данном коде в строке
    If -(InStr(Cells(li, 1), sSubStr) > 0) = lMet Then
    вместо = lMet указать <> lMet, то удаляться будут строки, не содержащие указанное для поиска значение. Иногда тоже удобно.
    Но. Данный код просматривает строки на предмет частичного совпадения указанного значения. Например, если Вы укажете текст для поиска «отчет», то будут удалены все строки, в которых встречается это слово(«квартальный отчет», «отчет за месяц» и т.д.). Это не всегда нужно. Поэтому ниже приведен код, который будет удалять только строки, указанные ячейки которых равны конкретно указанному значению:

    Sub Del_SubStr()
        Dim sSubStr As String 'искомое слово или фраза(может быть указанием на ячейку)
        Dim lCol As Long 'номер столбца с просматриваемыми значениями
        Dim lLastRow As Long, li As Long
        Dim arr
     
        sSubStr = InputBox("Укажите значение, которое необходимо найти в строке", "www.excel-vba.ru", "")
        lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
        If lCol = 0 Then Exit Sub
     
        lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        arr = Cells(1, lCol).Resize(lLastRow).Value
     
        Application.ScreenUpdating = 0
        Dim rr As Range
        For li = 1 To lLastRow 'цикл с первой строки до конца
            If CStr(arr(li, 1)) = sSubStr Then
                If rr Is Nothing Then
                    Set rr = Cells(li, 1)
                Else
                    Set rr = Union(rr, Cells(li, 1))
                End If
            End If
        Next li
        If Not rr Is Nothing Then rr.EntireRow.Delete
        Application.ScreenUpdating = 1
    End Sub

    Здесь так же, как и в случае с предыдущим кодом можно заменить оператор сравнения(Cells(li, lCol) = sSubStr) с равно на неравенство(Cells(li, lCol) <> sSubStr) и тогда удаляться будут строки, значения ячеек которых не равно указанному.


    УДАЛЕНИЕ СТРОК НА ОСНОВАНИИ СПИСКА ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)
    Иногда бывают ситуации, когда необходимо удалить строки не по одному значению, а по нескольким. Например, если строка содержит или Итог или Отчет. Ниже приведен код, при помощи которого можно удалить строки, указав в качестве критерия диапазон значений.
    Значения, которые необходимо найти и удалить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — они все будут удалены. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.

    Sub Del_Array_SubStr()
        Dim sSubStr As String    'искомое слово или фраза
        Dim lCol As Long    'номер столбца с просматриваемыми значениями
        Dim lLastRow As Long, li As Long
        Dim avArr, lr As Long
        Dim arr
     
        lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
        If lCol = 0 Then Exit Sub
        Application.ScreenUpdating = 0
        lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        'заносим в массив значения листа, в котором необходимо удалить строки
        arr = Cells(1, lCol).Resize(lLastRow).Value
        'Получаем с Лист2 значения, которые надо удалить в активном листе
        With Sheets("Лист2") 'Имя листа с диапазоном значений на удаление
            avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
        End With
        'удаляем
        Dim rr As Range
        For lr = 1 To UBound(avArr, 1)
            sSubStr = avArr(lr, 1)
            For li = 1 To lLastRow 'цикл с первой строки до конца
                If CStr(arr(li, 1)) = sSubStr Then
                    If rr Is Nothing Then
                        Set rr = Cells(li, 1)
                    Else
                        Set rr = Union(rr, Cells(li, 1))
                    End If
                End If
                DoEvents
            Next li
            DoEvents
        Next lr
        If Not rr Is Nothing Then rr.EntireRow.Delete
        Application.ScreenUpdating = 1
    End Sub

    Чтобы код выше удалял строки не по точному совпадению слов, а по частичному(например, в ячейке записано «Привет, как дела?», а в списке есть слово «привет» — надо удалить, т.к. есть слово «привет»), то надо строку:

    If CStr(arr(li, 1)) = sSubStr Then

    заменить на такую:

    If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

    УДАЛЕНИЕ ИЗ ЛИСТА СТРОК, КОТОРЫХ НЕТ В СПИСКЕ ЗНАЧЕНИЙ(МНОЖЕСТВЕННЫЕ КРИТЕРИИ)

    Т.к. в последнее время стало поступать все больше и больше вопросов как не удалять значения по списку, а наоборот — оставить в таблице только те значения, которые перечислены в списке — решил дополнить статью и таким кодом.
    Значения, которые необходимо оставить перечисляются на листе с именем «Лист2». Т.е. указав на «Лист2» в столбце А(начиная с первой строки) несколько значений — после работы кода на листе будут оставлены только те строки, в которых присутствует хоть одно из перечисленных в списке значений. Если лист называется иначе(скажем «Соответствия») в коде необходимо будет «Лист2» заменить на «Соответствия». Удаление строк происходит на активном в момент запуска кода листе. Это значит, что перед запуском кода надо перейти на тот лист, строки в котором необходимо удалить.
    В отличие от приведенных выше кодов, данный код ориентирован на то, что значения в списке указаны не полностью. Т.е. если необходимо оставить только те ячейки, в которых встречается слово «активы», то в списке надо указать только это слово. В этом случае если в ячейке будет записана фраза «Нематериальные активы» или «Активы сторонние» — эти ячейки не будут удалены, т.к. в них встречается слово «активы». Регистр букв при этом неважен.

    'процедура оставляет в листе только те значения, которые перечислены в списке
    Sub LeaveOnlyFoundInArray()
        Dim sSubStr As String   'искомое слово или фраза
        Dim lCol As Long        'номер столбца с просматриваемыми значениями
        Dim lLastRow As Long, li As Long
        Dim avArr, lr As Long
        Dim arr
        Dim IsFind As Boolean
     
        lCol = Val(InputBox("Укажите номер столбца, в котором искать указанное значение", "www.excel-vba.ru", 1))
        If lCol = 0 Then Exit Sub
        Application.ScreenUpdating = 0
        lLastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        'заносим в массив значения листа, в котором необходимо удалить строки
        arr = Cells(1, lCol).Resize(lLastRow).Value
        'Получаем с Лист2 значения, которые надо удалить в активном листе
        With Sheets("Лист2") 'Имя листа с диапазоном значений на удаление
            avArr = .Range(.Cells(1, 1), .Cells(.Rows.Count, 1).End(xlUp))
        End With
        'удаляем
        Dim rr As Range
        For li = 1 To lLastRow 'цикл с первой строки таблицы до конца
            IsFind = False
            For lr = 1 To UBound(avArr, 1) 'цикл по списку значений на удаление
                sSubStr = avArr(lr, 1)
                If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then
                    IsFind = True
                End If
                DoEvents
            Next lr
            'если значение таблицы не найдено в списке - удаляем строку
            If Not IsFind Then
                If rr Is Nothing Then
                    Set rr = Cells(li, 1)
                Else
                    Set rr = Union(rr, Cells(li, 1))
                End If
            End If
            DoEvents
        Next li
        If Not rr Is Nothing Then rr.EntireRow.Delete
        Application.ScreenUpdating = 1
    End Sub

    Чтобы код выше сравнивал значения таблицы со значениями списка по точному совпадению слов, а не по частичному, то надо строку:

    If InStr(1, arr(li, 1), sSubStr, 1) > 0 Then

    заменить на такую:

    If CStr(arr(li, 1)) = sSubStr Then

    Для всех приведенных кодов можно строки не удалять, а скрывать. Для этого надо строку:

    If Not rr Is Nothing Then rr.EntireRow.Delete

    заменить на такую:

    If Not rr Is Nothing Then rr.EntireRow.Hidden = True

    По умолчанию все коды начинают просмотр строк с первой по последнюю заполненную на листе. И если необходимо удалять строки не с первой или не по последнюю, то надо внести корректировки в эту строку:

    For li = 1 To lLastRow 'цикл с первой строки до конца

    1 — это первая строка; lLastRow — определяется автоматически кодом и равна номеру последней заполненной строки на листе. Если надо начать удалять строки только с 7-ой строки(например, в первых 6-ти шапка), то код будет выглядеть так:

    For li = 7 To lLastRow 'цикл с седьмой строки до конца

    А если надо удалять только с 3-ей по 300-ю, то код будет выглядеть так:

    For li = 3 To 300 'цикл с третьей строки до трехсотой

    Так же см.:
    Что такое макрос и где его искать?
    Что такое модуль? Какие бывают модули?
    Как создать кнопку для вызова макроса на листе
    Удаление всех пустых строк в таблице
    Удаление пустых столбцов на листе
    Установить Быстрый фильтр
    Фильтр


    Статья помогла? Поделись ссылкой с друзьями!

      Плейлист   Видеоуроки


    Поиск по меткам

    

    Access
    apple watch
    Multex
    Power Query и Power BI
    VBA управление кодами
    Бесплатные надстройки
    Дата и время
    Записки
    ИП
    Надстройки
    Печать
    Политика Конфиденциальности
    Почта
    Программы
    Работа с приложениями
    Разработка приложений
    Росстат
    Тренинги и вебинары
    Финансовые
    Форматирование
    Функции Excel
    акции MulTEx
    ссылки
    статистика

     

    Сергей Иванов

    Пользователь

    Сообщений: 25
    Регистрация: 01.01.1970

    #1

    13.04.2013 11:41:29

    Добрый день.
    Имеется файл отчета (генерируется программой). В нем необходимо удалить строки соответствующие двум параметрам :
    1. по столбцу NAME — остаются строки в которых есть «вменяемые» имена. Например «Profil 33 x 33 x  457.0 mm» , строки с именами типа «» или «-» должны удаляться.
    2. по столбцу HIDDEN — остаются строки со значением «» , строки с любым другим значением типа «1» или «3.0»
    т.е. в конечном файле должны остаться только строки вида :
    PATH                                   NAME                       HIDDEN
    «Model/Component#1» «Profil 33 x 33 x  212.0 mm» «»
    «Model/Component#2» «Profil 33 x 33 x  702.0 mm» «»
    строки вида:
    PATH                                    NAME                      HIDDEN
    «Model»                          «»                                       «»
    «Model/Component#7» «»                                       «»
    «Model/Component#9» «»                                       «»
    «Model/Component#4» «Profil 33 x 33 x  457.0 mm» «1»
    «Model/Component#4» «Profil 33 x 33 x  457.0 mm» «1»
    должны удаляться.
    Количество строк заранее не известно. Положение столбцов NAME и HIDDEN может меняться (могут добавляться  доп. значения в других столбцах) т.е. ориентироваться можно только по названию столбца.
    Можно ли это реализовать формулами ?
    Я нашел только макрос :

    Код
    Sub DeleteEmptyRows()
        LastRow = ActiveSheet.UsedRange.Row - 1 + ActiveSheet.UsedRange.Rows.Count
        Application.ScreenUpdating = False
        For r = LastRow To 1 Step -1
            If Application.CountA(Rows(r)) = 0 Then Rows(r).Delete
        Next r
    End Sub

    он удаляет все пустые строки, можно ли изменить строку условия ( if ) в соответствии и условпями описанными выше ?

    Прикрепленные файлы

    • Книга1.xls (25 КБ)

     

    Удаление строк по условию:

    http://excelvba.ru/code/ConditionalRowsDeleting

    (есть варианты кода с разным количество условий — см. также и комменты к статье)

     

    Сергей Иванов

    Пользователь

    Сообщений: 25
    Регистрация: 01.01.1970

    #3

    13.04.2013 12:52:22

    EducatedFool, Спасибо, буду смотреть.

    вроде нашел похожий макрос :

    Код
    Sub УдалениеСтрок()
     Dim ra As Range, delra As Range, cell As Range
     Set ra = Range([d1], Range("d" & Rows.Count).End(xlUp)) ' весь столбец D
    
     Application.ScreenUpdating = False ' отключаем обновление экрана
     
     ' перебираем все ячейки в столбце D, и выбираем только пустые ячейки
     ' заодно смотрим, не содержит ли ячейка справа (столбец E) содержала значение 1
     For Each cell In ra.Cells
     If (cell = "" )  or cell.Next = "1" Then
     ' добавляем ячейку в диапазон для удаления
     If delra Is Nothing Then Set delra = cell Else Set delra = Union(delra, cell)
     End If
     Next cell
     
     ' если подходящие строки найдены - удаляем их
     If Not delra Is Nothing Then delra.EntireRow.Delete
    End Sub

    так как файл .xls получается из текстового файла .csv я могу получить в нужных ячейках пустые значения (см. приложение).
    теперь по условию If (cell = «»)  or cell.Next = «1» если ячейка в столбце D (NAME) не содержит значение или ячейка рядом в столбце E (HIDDEN) содержит единицу всё правильно работает — строка удаляется.
    только подгонять нужный столбец под букву D нужно вручную.
    Можно ли назначить проверяемый столбец условием что в первой строке этого столбца находится значение NAME

    P.S. Спасибо вам за ваши макросы.

    Прикрепленные файлы

    • Книга3.xls (28 КБ)

    Изменено: Сергей Иванов11.08.2018 00:36:26

     

    EducatedFool

    Пользователь

    Сообщений: 3631
    Регистрация: 23.12.2012

    #4

    13.04.2013 15:46:00

    вот так будет работать:

    Код
    Sub УдалениеСтрок()
        Dim ra As Range, delra As Range, cell As Range
        Set ra = Range("1:1").Find("NAME", , xlValues, xlWhole, , , False)
        If ra Is Nothing Then MsgBox "Не найден столбец «NAME»", vbCritical: Exit Sub
    
        Set ra = Range(ra, Cells(Rows.Count, ra.Column).End(xlUp)) ' весь столбец NAME
    
        Application.ScreenUpdating = False    ' отключаем обновление экрана
    
        ' перебираем все ячейки в столбце D, и выбираем только пустые ячейки
        ' заодно смотрим, не содержит ли ячейка справа (столбец E) содержала значение 1
        For Each cell In ra.Cells
            If (cell = "") Or (cell.Next = "1") Then
                ' добавляем ячейку в диапазон для удаления
                If delra Is Nothing Then Set delra = cell Else Set delra = Union(delra, cell)
            End If
        Next cell
    
        ' если подходящие строки найдены - удаляем их
        If Not delra Is Nothing Then delra.EntireRow.Delete
    End Sub
     

    EducatedFool,
    Да, все отлично работает !
    Спасибо.

     

    …пришла беда откуда не ждали,

    напал на нашу землю проклятый буржуин

    — поменялся формат таблицы (перед столбцом HIDDEN добавился столбец LENX , теперь HIDDEN не Next за NAME)
    и теперь удаляются строки только с пустыми ИМЕНАМИ (удаление по HIDDEN=1) не работает.
    Помогите прикрутить вторую проверку и удаление по HIDDEN .
    Существует вероятность что столбец HIDDEN может перемещаться, т.е. нужно ориентироваться не на его местоположение, а на его имя.

     

    У меня вопрос, надеюсь по теме, про удаление строк в таблице, но не по условию содержания определенного текста в ячейке. Мне необходимо удалить строки в которых не соблюдается условие — разница между днями должна быть не меньше «7». Т.е. те строки в которых разница между днями меньше «7» — удаляются. Как можно реализовать?

    Прикрепленные файлы

    • SNOW.xls (54.5 КБ)

    Изменено: Iaroslav Gribanov02.05.2013 15:01:12
    (добавлен файл)

     

    Z

    Пользователь

    Сообщений: 6111
    Регистрация: 21.12.2012

    Win 10, MSO 2013 SP1

    #8

    02.05.2013 15:11:17

    Цитата
    Iaroslav Gribanov пишет: … разница между днями должна быть не меньше «7»…

    Задание, похоже, учебно-тренировочное — потому как выплеснуть младенца запросто…
    Впрочем, в доп поле минусуйте дни, а затем фильтром и… делом… ;)
    ps На куске показать бы стоило: каким макаром из чего ЧТО должно получиться.

    «Ctrl+S» — достойное завершение ваших гениальных мыслей!.. ;)

     

    Iaroslav Gribanov

    Пользователь

    Сообщений: 26
    Регистрация: 04.01.2013

    #9

    02.05.2013 15:24:32

    Цитата
    Z пишет:
    в доп поле минусуйте дни, а затем фильтром

    Для 500 строк может быть и годится (хотя тоже не по фэншую), а вот для более внушительной выборки — уже проблематично.

    Цитата
    Z пишет:
    На куске показать бы стоило

    Исправляюсь. Добавляю файл с тем как было и должно быть.

    Прикрепленные файлы

    • SNOW2.xls (28 КБ)

     

    Hugo

    Пользователь

    Сообщений: 23249
    Регистрация: 22.12.2012

    #10

    02.05.2013 16:41:10

    Дни минусовать формулой думаю не получится.

    Как-то некрасиво, самому не нравится… Но работает:

    Код
    Sub tt()
        Dim i&, d1 As Date, d2 As Date
        i = 3
        On Error Resume Next
        Do While Len(Cells(i, 1))
            i = i + 1
            If Len(Cells(i, 1)) Then
                d1 = CDate(Cells(i, 3) & "." & Format(Cells(i, 2), "00") & "." & Format(Cells(i - 1, 1), "00"))
                d2 = CDate(Cells(i - 1, 3) & "." & Format(Cells(i - 1, 2), "00") & "." & Format(Cells(i - 1, 1), "00"))
                If Abs(DateDiff("d", d2, d1)) < 7 Then
                    Rows(i).Delete
                    i = i - 1
                End If
            End If
        Loop
    End Sub

    Кстати, там у Вас в примере ошибка.

     

    Iaroslav Gribanov

    Пользователь

    Сообщений: 26
    Регистрация: 04.01.2013

    #11

    02.05.2013 17:34:09

    Hugo, спасибо огромное!)))
    Все работает!!)))))

    Цитата
    Hugo пишет:
    Кстати, там у Вас в примере ошибка.

    Да, я заметил) Но главное, что смысл понятен)))
    Еще раз спасибо!

     

    romkq

    Пользователь

    Сообщений: 8
    Регистрация: 10.08.2018

    #12

    10.08.2018 15:40:17

    Подскажите, как решить данную задачу через макрос, иметься группа данных в которых присутствуют пустые ячеки и пустые строки, мне необходимо удалить исключительно пустые строки.

    Скрытый текст

    Изменено: romkq11.08.2018 00:37:21

     

    romkq

    Пользователь

    Сообщений: 8
    Регистрация: 10.08.2018

    Пример сделал.

    Изменено: romkq10.08.2018 15:43:47

     

    Юрий М

    Модератор

    Сообщений: 60570
    Регистрация: 14.09.2012

    Контакты см. в профиле

    #14

    10.08.2018 23:11:19

    Код
    Sub Macro1()
    Dim LastRow As Long, i As Long
        LastRow = Cells.Find(What:="*", SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row
        Application.ScreenUpdating = False
        For i = LastRow To 2 Step -1
            If Application.WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 5))) = 0 Then Rows(i).Delete
        Next
        Application.ScreenUpdating = True
    End Sub
    
    
    
    

    Удаление строки в Microsoft Excel

    Удаление строк в Microsoft Excel

    ​Смотрите также​: off: но если​ когда Вы будете​http://www.excelworld.ru/board….-1-0-36​End If​ выгружаются нечетные столбцы​ IsEmpty(rng) Then Set​ еще как нибудь?​ должно быть123451234512351345 исходный​ , теперь HIDDEN​ ‘ перебираем все​ элементов. Например, чтобы​ о которых шла​ способе, задачу можно​

    ​нужно указать, по​ задачи можно применить​

    Процесс удаления строк

    ​ этим элементам.​Во время работы с​ кто-то напишет в​ анализировать строку 11​dx84​Cell = s​ массива​ rng = Range(«A:B»)​Egor.V.A​ вариант1234512345пустая строка1235пустая строка1345​

    Способ 1: одиночное удаление через контекстное меню

    ​ не Next за​ ячейки в столбце​ удалить одну-две строчки​ речь выше.​ также решить через​ какому именно параметру​

    1. ​ нижеописанный алгоритм.​Если диапазон большой, то​ программой Excel часто​ ячейке не «мАрковка»,​ — на самом​: Pelena, В моем​​rr = 9​​а если​

      Переход к процедуре удаления через контекстное меню в Microsoft Excel

    2. ​ Else Set rng​: Попробуй так, заменив​romkq​ NAME)​ D, и выбираем​​ вполне можно обойтись​​Открывается окно сортировки. Как​

      ​ вкладку​ будет происходить отбор:​

      ​Переходим во вкладку​ можно выделить самую​ приходится прибегать к​ а «мОрковка» то​ деле это будет​ случае условие значение​End If​Dim i As​ = Range(Range(«B1»), rng.End(xlUp))​​ цикл кодом:​​: Пример сделал.​

      Удаление строки через панель координат в Microsoft Excel

      ​и теперь удаляются​ только пустые ячейки​ стандартными инструментами одиночного​ всегда, обращаем внимание,​«Данные»​Значения;​

    Способ 2: одиночное удаление с помощью инструментов на ленте

    ​«Главная»​ верхнюю ячейку, щелкнув​ процедуре удаления строк.​ макрос это не​ бывшая строка 12…​​ а там Level​​Next Cell​

    1. ​ Long, n As​ arr = rng​Range(«B1:B» & ActiveSheet.UsedRange.Rows.Count).SpecialCells(xlCellTypeBlanks).Rows.Delete​Юрий М​​ строки только с​​ ‘ заодно смотрим,​ удаления. Но чтобы​ чтобы около пункта​. Для этого, находясь​​Цвет ячейки;​​. На ленте инструментов​​ по ней левой​​ Этот процесс может​ обнаружит и ячейку​т.е. нужно или​​ 2 пробивал менять​​Next r​

      Удаление строки через кнопку на ленте в Microsoft Excel

    2. ​ Long, m As​ ‘Формируем из данного​

    ​Egor.V.A​: Sub Macro1() Dim​ пустыми ИМЕНАМИ (удаление​ не содержит ли​ выделить много строк,​«Мои данные содержат заголовки»​ в ней, нужно​​Цвет шрифта;​​ жмем на значок​​ кнопкой мыши. Затем​​ быть, как единичным,​ не очистит.​​ корректировать что смотрим,​​ не получилось​

    Удаление строки с помощью кнопки на ленте в Microsoft Excel

    Способ 3: групповое удаление

    ​End Sub​ Long, k As​ массива новый, во​:​

    1. ​ LastRow As Long,​ по HIDDEN=1) не​ ячейка справа (столбец​ пустые ячейки или​стояла галочка. В​ щелкнуть по кнопке​Значок ячейки.​«Найти и выделить»​ зажать клавишу​ так и групповым,​

      Выделение нескольких ячеек в Microsoft Excel

      ​AnonAnon​ или (что проще)​AlexK​Pelena​ Long, a As​ втором столбце которого​​toiai​​ i As Long​ работает.​ E) содержала значение​ элементы по заданному​ поле​«Фильтр»​

      Выделение диапазона ячееек с помощью клавиши Shift в Microsoft Excel

      ​Тут уже все зависит​. Он расположен в​Shift​ в зависимости от​: всем привет!​ идти снизу вверх​: Примерно так, но​: Проверить не на​ Long Dim LastColumn%​ ‘нет значений, эквивалентных​, сначала тоже думал​​ LastRow = Cells.Find(What:=»*»,​​Помогите прикрутить вторую​ 1 For Each​

      Выделение розрозненных ячеек в Microsoft Excel

    2. ​ условию, существуют алгоритмы​«Сортировать по»​, которая расположена в​ от конкретных обстоятельств,​ группе​и кликнуть по​ поставленных задач. Особый​Нужна небольшая помощь:​for i =​ кол-во строк не​ чем, но как-то​

    ​ LastColumn = ActiveSheet.Cells(10,​ константе vbNullString. n​ в эту сторону​ SearchOrder:=xlByRows, SearchDirection:=xlPrevious).Row Application.ScreenUpdating​ проверку и удаление​ cell In ra.Cells​ действий, которые значительно​

    1. ​выбираем столбец​ блоке инструментов​ но в большинстве​«Редактирование»​ самой нижней ячейке​ интерес в этом​Есть файл, нужно​ 700 to 10​ должно превышать 2000​

      Выделение диапазрона строк в Microsoft Excel

      ​ так попробуйте​ Columns.Count).End(xlToLeft).Column ElseIf arr(i,​ = UBound(arr) ‘Вычислим​​ . Потом подготовил​​ = False For​ по HIDDEN .​ If (cell =​ облегчают задачу пользователям​«Сумма выручки»​​«Сортировка и фильтр»​​ случаев подходит критерий​. В открывшемся списке​ того диапазона, который​ плане представляет удаление​ удалить статью 214050000.​ step -1​

      Выделение диапазона строк с помощью клавиши Shift в Microsoft Excel

      ​nilem​Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()​ 3) <> vbNullString​ количество непустых ячеек​ тестовый лист с​ i = LastRow​Существует вероятность что​ «» ) or​ и экономят их​. В поле​.​​«Значения»​​ жмем на пункт​

      Выделение розрозненных строк в Microsoft Excel

    2. ​ нужно удалить. Выделены​ по условию. Давайте​С этой статьёй​Dmitriy_81​: для примера:​Dim r As​​ Then k =​​ в диапазоне столбца​

      Удаление выбранных строк в Microsoft Excel

      ​ 200000 строками, сформированными​ To 2 Step​

    Выбранные строки удалены в Microsoft Excel

    ​ столбец HIDDEN может​​ cell.Next = «1»​ время. К таким​

    Способ 4: удаление пустых элементов

    ​«Сортировка»​После выполнения любого из​. Хотя в дальнейшем​«Выделение группы ячеек»​ будут все элементы,​ рассмотрим различные варианты​ есть 5 строк,​: Согласен, поторопился немного​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub example_05()​ Long, FirstRow As​ k + 1​ «B». ‘При этом​ по следующему принципу:​ -1 If Application.WorksheetFunction.CountA(Range(Cells(i,​ перемещаться, т.е. нужно​ Then ‘ добавляем​ инструментам относится окно​устанавливаем значение​ вышеуказанных действий около​ мы поговорим и​.​ находящиеся между ними.​ данной процедуры.​ в общем нужно​

    1. ​GacRux​​On Error Resume​​ Long, LastRow As​ For a =​​ адрес диапазона передается​​ нечетные — непустые,​ 1), Cells(i, 5)))​​ ориентироваться не на​​ ячейку в диапазон​ выделения группы ячеек,​​«Цвет ячейки»​​ правой границы каждой​

      Переход к выделентю группы ячеек в Microsoft Excel

    2. ​ об использовании другой​Запускается небольшое окошко выделения​В случае, если нужно​Скачать последнюю версию​​ оставить одну строку​​: А у меня​ Next​​ Long​​ 1 To LastColumn​

      Окно выделения ячеек в Microsoft Excel

    3. ​ в том же​ четные — пустые.​ = 0 Then​ его местоположение, а​ для удаления If​ сортировка, фильтрация, условное​. В следующем поле​ ячейки шапки появится​ позиции.​ группы ячеек. Ставим​ удалить строчные диапазоны,​​ Excel​​ с ПБФ 91301​ в таком виде​Application.ScreenUpdating = False​​Dim Region As​​ a = a​ стиле ссылок, ‘который​

      Удаление пустых ячеек в Microsoft Excel

      ​ И представь себе,​ Rows(i).Delete Next Application.ScreenUpdating​ на его имя.​

    Пустые строки удалены в Microsoft Excel

    ​ delra Is Nothing​ форматирование и т.п.​ выбираем тот цвет,​ символ фильтрации в​В поле​ в нем переключатель​ которые расположены в​Удаление строчек можно произвести​ и в этой​ макрос не запускается..​With Sheets(«день»).Range(«B2»).CurrentRegion​ Range, iRow As​ + 1 arr2(k,​ выставлен в приложении.​

    Нельзя применять удаление пустых строк в Microsoft Excel

    ​ код со SpecialCells​​ = True End​Iaroslav Gribanov​

    Способ 5: использование сортировки

    ​ Then Set delra​Автор: Максим Тютюшев​ строчки с которым​ виде треугольника, направленного​«Порядок»​ в позицию​ отдалении друг от​ совершенно разными способами.​ строке заменить ZKF​ =(​.Columns(2).Replace 0, Empty​

    1. ​ Range, Cell As​ a) = arr(i,​ В противном случае​ такой краш-тест не​ Sub​: У меня вопрос,​​ = cell Else​​Сергей Иванов​ нужно удалить, согласно​​ углом вниз. Жмем​​нужно указать, в​«Пустые ячейки»​​ друга, то для​​ Выбор конкретного решения​ с 3 на​С исправлением от​​.Sort Key1:=.Cells(1, 2),​​ Range​

      Переход к настраиваемой сортировке в Microsoft Excel

      ​ a) Next a​ может ‘возникнуть ситуация,​ прошел…​Egor.V.A​ надеюсь по теме,​ Set delra =​: Добрый день.​​ условному форматированию. В​​ по этому символу​ каком порядке будут​​. После этого жмем​​ их выделения следует​​ зависит от того,​​ 10.​

      Переход к сортировке в Microsoft Excel

    2. ​ Hugo.​ Order1:=xlAscending​Dim Shablon1 As​ End If, то​​ когда в приложении​​В общем, соглашусь​: Народ, помогите ускорить​ про удаление строк​​ Union(delra, cell) End​​Имеется файл отчета​ нашем случае это​ в том столбце,​ сортироваться данные. Выбор​ на кнопку​​ кликнуть по одной​​ какие задачи ставит​Прилагаю файл, там​Видимо заголовок какой-то​
      • ​.Columns(2).SpecialCells(4).EntireRow.Delete​
      • ​ String​
      • ​ — четные​
      • ​ используется стиль ‘ссылок​

      ​ с ТС, выход​ процесс:​ в таблице, но​ If Next cell​​ (генерируется программой). В​​ розовый цвет. В​ где находится значение,​ критериев в этом​«OK»​

      ​ из ячеек, находящихся​​ перед собой пользователь.​​ есть макрос, но​ должен быть.​.Parent.UsedRange​Shablon1 = «*категория2//*»​что не так?​ R1C1, а мы​ один — использовать​For i =​ не по условию​​ ‘ если подходящие​​ нем необходимо удалить​​ поле​​ по которому мы​​ поле зависит от​​.​​ в них, левой​​ Рассмотрим различные варианты,​ он зашивается на​if cells(i,1).value =»»​End With​Shablon2 = «*Знач/*»​ как правильно написать,​
      ​ передаем ей адрес​ массивы…​ 10000 To 1​ содержания определенного текста​​ строки найдены -​​ строки соответствующие двум​

      Окно сортировки в Microsoft Excel

    3. ​«Порядок»​ будем убирать строки.​ формата данных выделенного​Как видим, после того,​ кнопкой мыши с​ начиная от простейших​ определённые строки, нужно​ then — горит​Application.ScreenUpdating = True​Set Region =​ чтоб выгружалось все?​

    Удаление ячеек после сортировки в Microsoft Excel

    ​ в стиле A1.​Sub DeleteRowsNullStringsB() Dim​ Step -1 If​ в ячейке. Мне​

    Удаление пустых строк при помощи сотировки в Microsoft Excel

    ​ удаляем их If​ параметрам :​выбираем, где будут​Открывается меню фильтрования. Снимаем​ столбца. Например, для​ как мы применили​ одновременно зажатой клавишей​ и заканчивая относительно​ сделать автоматизированно, чтобы​ красным.​End Sub​ ActiveSheet.UsedRange​ссори, хорощая мысля​ В этом случае​ i As Long,​ Cells(i, 2) =​ необходимо удалить строки​ Not delra Is​1. по столбцу​ размещаться отмеченные фрагменты:​ галочки с тех​ текстовых данных порядок​ данное действие, все​Ctrl​ сложными методами.​ искал строки с​Уж простите, новичок​krosav4ig​

    ​FirstRow = Region.Row​​ приходит опосля))))​

    Способ 6: использование фильтрации

    ​ ‘функция не сможет​ n As Long,​ «» Then Range(Cells(i,​ в которых не​ Nothing Then delra.EntireRow.Delete​ NAME — остаются​ сверху или снизу.​ значений в строчках,​ будет​ пустые элементы выделены.​. Все выбранные элементы​Наиболее простой способ удаления​

    1. ​ нужным значением, изменял​ совсем.​:​LastRow = Region.Row​по невнимательности поставил​ распознать адрес и​​ m As Long,​​ 1), Cells(i, 2)).Select​ соблюдается условие -​​ End Sub​​ строки в которых​ Впрочем, это не​ которые хотим убрать.​​«От А до Я»​​ Теперь можно использовать​

      Включение фильтра через вкладку Главная в Microsoft Excel

      ​ будут отмечены.​ строчек – это​ ZKF, а остальные​Hugo​​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Private Sub del_0()​​ — 1 +​ a=a+1​ вернет ошибку (а​​ k As Long​​ Selection.EntireRow.Delete End If​ разница между днями​​так как файл​​ есть «вменяемые» имена.​

      Включение фильтра в Microsoft Excel

    2. ​ имеет принципиального значения.​ После этого следует​или​ для их удаления​Чтобы провести непосредственную процедуру​ одиночный вариант данной​ удалить до тех​: Убрать в красных​Dim rng As​ Region.Rows.Count​)))))))​ ошибки ‘со значениями​

      Переход к фильтру в Microsoft Excel

    3. ​ Dim rng As​ Next iУж очень​ должна быть не​ .xls получается из​ Например «Profil 33​ Стоит также отметить,​​ нажать на кнопку​​«От Я до А»​

    Фильтрация в Microsoft Excel

    ​ любой из способов,​ удаления строчек вызываем​ процедуры. Выполнить его​ пор пока статья​ строках символ (квадрат​ Range​For r =​

    Фильтрация выполнена в Microsoft Excel

    ​вопрос снят​​ не сравниваются -​

    Способ 7: условное форматирование

    ​ Range, arr() As​ долго работает, а​ меньше «7». Т.е.​ текстового файла .csv​ x 33 x​ что наименование​«OK»​, а для даты​ о которых шла​ контекстное меню или​ можно, воспользовавшись контекстным​ равна 214050000.​ скорее всего) перед​With ThisWorkbook.Worksheets(«день»).Range(«C:C»)​ LastRow To FirstRow​pashatank​ «Type Mismatch»!) m​

    1. ​ Variant Set rng​​ надо, чтоб меньше​​ те строки в​ я могу получить​ 457.0 mm» ,​​«Порядок»​​.​«От старых к новым»​​ речь выше. Например,​​ же переходим к​ меню.​​Заранее спасибо!​​ Value — это​Set rng =​ Step -1​​: Здравствуйте! Уважаемые форумчане,​​ = n -​ = Cells(Cells.Rows.Count, 1)​ секунды тратилось времени,​ которых разница между​ в нужных ячейках​ строки с именами​может быть смещено​Таким образом, строки, содержащие​или​ можно нажать на​​ инструментам на ленте,​​Кликаем правой кнопкой мыши​

      Переход в окно условного форматирования в Microsoft Excel

    2. ​krosav4ig​ косяк движка форума!​ .Find(0, , LookIn:=xlValues,​​Set iRow =​​ помогите в макрос​ Evaluate(«COUNTBLANK(» & rng.Columns(2).Address(ReferenceStyle:=Application.ReferenceStyle)​ ‘Формируем массив, состоящий​ такое возможно?​ днями меньше «7»​ пустые значения (см.​ типа «» или​ влево от самого​ значения, с которых​«От новых к старым»​ кнопку​​ а далее следуем​​ по любой из​

      Окно форматирования в Microsoft Excel

    3. ​: Здравствуйте​Ну и ещё​ lookat:=xlWhole)​ Region.Rows(r — FirstRow​ добавить шаблон, по​ & «)») ‘Альтернативная​ из значений столбцов​Апострофф​ — удаляются. Как​ приложение).​ «-» должны удаляться.​ поля. После того,​ вы сняли галочки,​. Собственно сам порядок​​«Удалить»​​ тем рекомендациям, которые​ ячеек той строки,​как-то так​

      Запуск окна сортировки в Microsoft Excel

    4. ​ полезно отключить обновление​If Not rng​ + 1)​​ которому будет удаляться​​ поправка для предыдущей​ «A» и «B»​​: 1. For i​​ можно реализовать?​​теперь по условию​​2. по столбцу​​ как все вышеуказанные​​ будут спрятаны. Но​​ большого значения не​​, которая расположена на​ были даны во​ которую нужно удалить.​Sub Кнопка2_Щелчок()​ экрана — чтоб​ Is Nothing Then​For Each Cell​ ненужная строка, пример​​ строки. ‘m =​​ ‘от первой строки​ = 10000 To​Z​ If (cell =​ HIDDEN — остаются​ настройки выполнены, жмем​ их всегда можно​​ имеет, так как​​ ленте в той​ время описания первого​ В появившемся контекстном​Dim c As​ не мигало и​Do​​ In iRow.Cells​​ в ячейке несколько​

      Сортировка данных в Microsoft Excel

    5. ​ n — Application.WorksheetFunction.CountBlank(rng.Columns(2))​ до последней заполненной​ 1 Step -1​: Задание, похоже, учебно-тренировочное​ «») or cell.Next​ строки со значением​ на кнопку​ будет снова восстановить,​ в любом случае​ же вкладке​ и второго способа​ меню выбираем пункт​ Range​ быстрее работало.​rng.EntireRow.Delete​If Cell Like​ строк:​

      Удаление строк по условному форматированию в Microsoft Excel

    6. ​ ‘Учтем случай, когда​ в столбце «A».​ If Cells(i, 2)​ — потому как​ = «1» если​ «» , строки​«OK»​ сняв фильтрацию.​ интересующие нас значения​​«Главная»​​ данного руководства.​

    Удаление столбца с номерами в Microsoft Excel

    ​«Удалить…»​With Application: .ScreenUpdating​

    Удаление с помощью условного форматирование прошло усипешно в Microsoft Excel

    ​На практике ещё​Set rng =​ Shablon1 Or Cell​категория1/категория2//​ в столбце «B»​

    1. ​ If Not IsEmpty(rng)​ = «» Then​​ выплеснуть младенца запросто…​​ ячейка в столбце​ с любым другим​.​Урок:​ будут располагаться вместе.​, где мы сейчас​

      Включение фильтрации для отформатированной таблицы в Microsoft Excel

    2. ​Выделить нужные элементы можно​.​ = 0: .EnableEvents​ может понадобиться отключать​ .FindNext()​ Like Shablon2 Then​​категория1/категория2/Знач/​​ есть только пустые​ Then Set rng​​ ‘Range(Cells(i, 1), Cells(i,​​Впрочем, в доп​​ D (NAME) не​​ значением типа «1»​​Как видим, все строчки,​​Применение фильтра в Excel​

      Включение фильтра по цвету в Microsoft Excel

    3. ​После того, как​ работаем.​ также через вертикальную​Открывается небольшое окошко, в​ = 0​ пересчёт и события…​Loop While Not​XX = Split(Cell,​есть вот такой​ ячейки и ячейки​ = Range(«A:B») Else​

    Фильтрация произведена в Microsoft Excel

    ​ 2)).Select Cells(i, 2).EntireRow.Delete​​ поле минусуйте дни,​

    ​ содержит значение или​ или «3.0»​ в которых имеются​Ещё более точно можно​ настройка в данном​Как видим, все незаполненные​ панель координат. В​ котором нужно указать,​With ActiveSheet.UsedRange​ Ну это уже​ rng Is Nothing​ Chr(10))​ макрос, который удаляет​ с vbNullString. If​ Set rng =​ End If Next​ а затем фильтром​ ячейка рядом в​т.е. в конечном​ выделенные по условию​ задать параметры выбора​ окне выполнена, жмем​ элементы таблицы были​ этом случае будут​

    ​ что именно нужно​

    lumpics.ru

    Удалить строки по условию

    ​.AutoFilter Field:=1, Criteria1:=»214050000″​​ по ситуации.​
    ​End If​s = «»​ по шаблону «категория2//»​ m = 0​ Range(Range(«B1»), rng.End(xlUp)) arr​
    ​ i2. Ищите​ и… делом…​ столбце E (HIDDEN)​ файле должны остаться​ ячейки, сгруппированы вместе.​ строк, если вместе​ на кнопку​ удалены.​ выделяться не отдельные​ удалить. Переставляем переключатель​
    ​.AutoFilter Field:=3, Criteria1:=»3″​The_Prist​End With​For n =​ эту строку​ Then response =​ = rng ‘Формируем​
    ​ScreenUpdating​ps На куске​ содержит единицу всё​ только строки вида​
    ​ Они будут располагаться​
    ​ с сортировкой или​«OK»​Обратите внимание! При использовании​
    ​ ячейки, а строчки​ в позицию​.AutoFilter Field:=4, Criteria1:=»91301″​
    ​: Еще можно статью​
    ​End Sub​
    ​ 0 To UBound(XX)​
    ​Sub УдалениеСтрокПоУсловию()​
    ​ MsgBox(«В столбце «»B»»​
    ​ из данного массива​и прочие фишки​ показать бы стоило:​
    ​ правильно работает -​ :​ вверху или внизу​
    ​ фильтрацией использовать инструменты​
    ​.​ данного метода строчка​ полностью.​«Строку»​With .SpecialCells(12).Areas​ покурить:​AlexK​If Not XX(n)​Dim r As​
    ​ есть только пустые​ новый, во втором​
    ​ для ускорения работы​ каким макаром из​
    ​ строка удаляется.​PATH NAME HIDDEN​ таблицы, в зависимости​ условного форматирования. Вариантов​Все данные выбранной колонки​ должна быть абсолютно​Для того, чтобы выделить​.​Set c =​GacRux​
    ​: Не знаю почему​ Like Shablon1 And​ Long, FirstRow As​ ячейки и ячейки​ столбце которого ‘нет​ кода — примеров​ чего ЧТО должно​

    ​только подгонять нужный​​»Model/Component#1″ «Profil 33​ от того, какие​
    ​ ввода условий в​ будут отсортированы по​ пустая. Если в​ смежную группу строк,​После этого указанный элемент​

    ​ .Item(.Count).Rows(IIf(.Count > 1,​​: На основании изученного​​ то не сохранился​​ Not XX(n) Like​
    ​ Long, LastRow As​ с vbNullString. Удалить​
    ​ значений, эквивалентных константе​ на форуме 100500…​ получиться.​ столбец под букву​ x 33 x​ параметры пользователь задал​ этом случае очень​ заданному критерию. Теперь​ таблице имеются пустые​ зажимаем левую кнопку​ будет удален.​ 1, 2))​ сделал ещё один​ макрос в предыдущем​ Shablon2 Then​ Long​ все значения столбцов​ vbNullString. n =​snipe​Iaroslav Gribanov​ D нужно вручную.​ 212.0 mm» «»​ в окне сортировки.​ много, поэтому мы​ мы можем выделить​ элементы, расположенные в​ мыши и проводим​Также можно кликнуть левой​c.Cells(3) = 10​ макрос. Проверьте пожалуйста,​ ответе​s = s​Dim Region As​ «»A»» и «»B»»?»,​ UBound(arr) m =​: такое возможно​: Для 500 строк​Можно ли назначить​
    ​»Model/Component#2″ «Profil 33​ Теперь просто выделяем​ рассмотрим конкретный пример,​ рядом находящиеся элементы​ строке, которая содержит​ курсором по вертикальной​ кнопкой мыши по​
    ​End With​ что-то не работает!​Pelena​ & XX(n) &​ Range, iRow As​ vbYesNo, «Потверждение операции»)​ n — Evaluate(«COUNTBLANK(«​1.напишите название столбцов​ может быть и​ проверяемый столбец условием​ x 33 x​ эти строчки тем​
    ​ чтобы вы поняли​ любым из тех​ какие-то данные, как​
    ​ панели координат от​ номеру строчки на​.AutoFilter Field:=3​Задача в столбце​: Чтобы сохранялись макросы,​
    ​ Chr(10)​ Range, Cell As​

    ​ If response =​​ & rng.Columns(2).Address &​2.поставьте автофильтр​
    ​ годится (хотя тоже​ что в первой​ 702.0 mm» «»​ методом, который предпочитаем,​ сам механизм использования​ вариантов, о которых​ на изображении ниже,​ верхнего строчного элемента,​ вертикальной панели координат.​.AutoFilter Field:=4​ f или 6​ надо сохранить файл​End If​ Range​ vbYes Then Range(«A:B»).Clear​ «)») ReDim arr2(1​3.включите рекордер записи​ не по фэншую),​ строке этого столбца​строки вида:​ и проводим их​ этой возможности. Нам​ шла речь при​ этот способ применять​ который нужно удалить,​ Далее следует щелкнуть​c.Rows.Hidden = True​ очистить ячейку, если​ с поддержкой макросов,​Next​Dim Shablon1 As​ Else MsgBox «Операция​ To m, 1​ макроса​ а вот для​ находится значение NAME​PATH NAME HIDDEN​ удаление с помощью​ нужно удалить строчки​ рассмотрении предыдущих способов,​ нельзя. Его использование​ к нижнему.​ по выделению правой​.Offset(1).SpecialCells(12).Rows.Delete xlUp​ в ней присутствует​

    ​ например, .xlsm​​If Len(s) >​​ String​
    ​ отменена пользователем.», ,​ To 2) As​
    ​4. отфильтруйте записи​

    ​ более внушительной выборки​​P.S. Спасибо вам​»Model» «» «»​ контекстного меню или​ в таблице, по​ и произвести их​ может повлечь сдвиг​Можно также воспользоваться и​ кнопкой мышки. В​.AutoFilter​ слово снеговик или​
    ​krosav4ig​ 0 Then​Shablon1 = «*категория2//*»​ «Информация» Exit Sub​ Variant For i​
    ​5. удалите ненужные​ — уже проблематично.ЦитатаZ​ за ваши макросы.​
    ​»Model/Component#7″ «» «»​ кнопки на ленте.​ которым сумма выручки​ удаление.​ элементов и нарушение​ вариантом с использованием​

    ​ активировавшемся меню требуется​​End With​ марковка.​:​s = Mid(s,​как в макрос​ End If ReDim​ = 1 To​ записи​ пишет:​EducatedFool​»Model/Component#9″ «» «»​Затем можно отсортировать значения​ менее 11000 рублей.​Кстати, этот же способ​ структуры таблицы.​ клавиши​ выбрать пункт​.ScreenUpdating = 1:​

    ​Какие синтаксические ошибки​​AlexK​ 1, Len(s) -​ добавить еще один​
    ​ arr2(1 To m,​ n If arr(i,​6. отключите рекордер​На куске показать​;)
    ​: вот так будет​»Model/Component#4″ «Profil 33​ по столбцу с​Выделяем столбец​ можно использовать для​

    ​Урок:​​Shift​«Удалить»​ .EnableEvents = 1:​ я допустил? Спасибо!​, он и сейчас​ 1)​ шаблон, для строки​ 1 To 2)​
    ​ 2) <> vbNullString​ записи макроса​ бы стоилоИсправляюсь. Добавляю​ работать:​ x 33 x​

    ​ нумерацией, чтобы наша​​«Сумма выручки»​ группировки и массового​
    ​Как удалить пустые строки​. Кликаем левой кнопкой​.​
    ​ End With​Hugo​ не сохранился, он​End If​ Знач/ ?​ As Variant For​ Then k =​7. нажмите alt+f11​ файл с тем​Sub УдалениеСтрок() Dim​ 457.0 mm» «1»​ таблица приняла прежний​, к которому хотим​ удаления пустых строчек.​ в Экселе​ мышки по первому​В этом случае процедура​End Sub​: 1.If Cells(i, 6).Value​ остался в вашей​Cell = s​Pelena​ i = 1​ k + 1​8. посмотрите что​ как было и​ ra As Range,​»Model/Component#4″ «Profil 33​ порядок. Ставший ненужным​ применить условное форматирование.​
    ​Внимание! Нужно учесть, что​Для того, чтобы убрать​ номеру строки диапазона,​

    ​ удаления проходит сразу​​AnonAnon​​ = «снеговик», «марковка»​​ личной книге макросов​
    ​rr = 9​: Здравствуйте.​ To n ‘Учтем​
    ​ arr2(k, 1) =​

    ​ написал сам Excel​​ должно быть.​ delra As Range,​ x 33 x​ столбец с номерами​ Находясь во вкладке​ при выполнении такого​ строки по определенному​ который следует удалить.​
    ​ и не нужно​: krosav4ig, благодарю!​Then​

    ​ PERSONAL.XLSB​​End If​

    ​Добавьте​​ случай, когда столбец​ arr(i, 1) arr2(k,​думаю вы приятно​Hugo​ cell As Range​ 457.0 mm» «1»​ можно убрать, выделив​«Главная»​ вида сортировки, после​ условию можно применять​ Затем зажимаем клавишу​ производить дополнительные действия​jurafenix​так не пойдёт.​

    planetaexcel.ru

    Удаление строк по условию

    ​и да, сохранять​​Next Cell​Shablon2 = «*Знач/*»​
    ​ «B» содержит коды​ 2) = arr(i,​ удивитесь​: Дни минусовать формулой​ Set ra =​должны удаляться.​ его и нажав​, производим щелчок по​ удаления пустых ячеек​ сортировку. Отсортировав элементы​Shift​ в окне выбора​

    ​: Добрый день, уважаемый​​ Проверяйте сперва на​ или xlsm или​Next r​а в условии​ ошибок (которые несравнимы​ 2) End If​Апострофф​ думаю не получится.​ Range(«1:1»).Find(«NAME», , xlValues,​​Количество строк заранее​​ знакомую нам кнопку​ значку​ положение строк будет​ по установленному критерию,​

    ​и выполняем щелчок​​ объекта обработки.​
    ​ форумчане!​
    ​ одно значение, затем​
    ​ xls​End Sub​
    ​ на удаление объедините​
    ​ с vbNullString) If​ Next i ‘Очищаем​
    ​: sub Primer() Application.ScreenUpdating​Как-то некрасиво, самому​
    ​ xlWhole, , ,​
    ​ не известно. Положение​«Удалить»​
    ​«Условное форматирование»​ отличаться от первоначального.​

    ​ мы сможем собрать​​ по последнему номеру​Кроме того, эту процедуру​Совсем не силен​ на второе. Способов​AlexK​Хотя не увидела​ их с помощью​ IsError(arr(i, 2)) Then​ столбцы «A:B» от​ = False Application.Calculation​ не нравится… Но​ False) If ra​ столбцов NAME и​на ленте.​, который расположен на​ В некоторых случаях​ все строчки, удовлетворяющие​ указанной области. Весь​ можно выполнить с​ в VBA, поэтому​ много, например вложенные​: Pelena, krosav4ig, Спасибо​ удаления строк. Если​

    ​Or​​ k = k​ старых данных. Range(«A:B»).Clear​ = xlCalculationManual Application.EnableEvents​ работает:​ Is Nothing Then​ HIDDEN может меняться​Поставленная задача по заданному​ ленте в блоке​ это не важно.​ условию вместе, если​ диапазон строчек, лежащий​ помощью инструментов на​ решил обратиться за​ IF, или Select​ за подсказку, не​ Вам надо просто​Если не угадала,​ + 1 arr2(k,​ ‘Выгружаем на лист​ = False Application.DisplayStatusBar​Sub tt() Dim​ MsgBox «Не найден​ (могут добавляться доп.​ условию решена.​«Стили»​ Но, если вам​ они разбросаны по​ между этими номерами,​ ленте, которые размещены​ помощью к знающим​ Case True​

    ​ знал!​​ исключить из текста​ выложите весь код​
    ​ 1) = arr(i,​

    ​ сформированный массив. Cells(1).Resize(m,​​ = False Application.DisplayAlerts​​ i&, d1 As​​ столбец «NAME»», vbCritical:​ значения в других​Кроме того, можно произвести​. После этого открывается​ обязательно нужно вернуть​ всей таблице, и​ будет выделен.​ во вкладке​ людям. Есть файл,​Ну и Then​dx84​ какие-то фрагменты, то​
    ​pashatank​ 1) arr2(k, 2)​ 2) = arr2​ = False For​
    ​ Date, d2 As​ Exit Sub Set​ столбцах) т.е. ориентироваться​ аналогичную операцию с​ список действий. Выбираем​ первоначальное расположение, то​ быстро убрать их.​Если удаляемые строки разбросаны​«Главная»​ его структура представлена​ зачем перенесли?​: nilem, Ваш макрос​ проще использовать Replace.​: Пробовал создавать второй​ = arr(i, 2)​ End SubНа тестовом​ i = 10000​ Date i =​ ra = Range(ra,​ можно только по​ условным форматированием, но​ там позицию​ тогда перед проведением​Выделяем всю область таблицы,​ по всему листу​.​ в приложенном файле.​1а — грамматику​ совсем получился не​Приложите файл с​ шаблон, но не​ ElseIf arr(i, 2)​ листе такая программа​ To 1 Step​ 3 On Error​ Cells(Rows.Count, ra.Column).End(xlUp)) ‘​ названию столбца.​ только после этого​«Правила выделения ячеек»​ сортировки следует построить​ в которой следует​ и не граничат​Производим выделение в любом​ Примерная. Мне необходимо​ тоже нужно учитывать​ по назначению.​ примером, что есть​ выходит, вот целиком​ <> vbNullString Then​ отработала быстрее чем​ -1 If Cells(i,​ Resume Next Do​
    ​ весь столбец NAME​

    ​Можно ли это​​ проведя фильтрацию данных.​. Далее запускается ещё​
    ​ дополнительный столбец и​
    ​ провести сортировку, или​

    ​ друг с другом,​​ месте строчки, которую​ удалить все строки,​2. Then Сell(i.6).Clear​nilem​ и что надо​
    ​Sub ÓäàëåíèåÑòðîêÏîÓñëîâèþ()​ k = k​ за секунду.​ 2) = «»​ While Len(Cells(i, 1))​
    ​ Application.ScreenUpdating = False​ реализовать формулами ?​Итак, применяем условное форматирование​​ одно меню. В​​ пронумеровать в нем​ одну из её​ то в таком​
    ​ требуется убрать. Переходим​ которые не начинаются​ — запятая!​: Просто для интереса​pashatank​Dim r As​ + 1 arr2(k,​С уважением, Aksima​ Then ‘Range(Cells(i, 1),​ i = i​ ‘ отключаем обновление​Я нашел только​ к столбцу​ нем нужно конкретнее​ все строчки, начиная​ ячеек. Переходим во​ случае, нужно щелкнуть​ во вкладку​ на 4 или​10. Ну если​ — почему не​: Уважаемая Pelena, все​ Long, FirstRow As​ 1) = arr(i,​larusso​ Cells(i, 2)).Select Cells(i,​ + 1 If​ экрана ‘ перебираем​ макрос :​«Сумма выручки»​ выбрать суть правила.​ с первой. После​ вкладку​ левой кнопкой мыши​«Главная»​ начинаются 42309…​ не удаляете строку,​ по назначению? В​ получилось, спасибо Вам​ Long, LastRow As​ 1) arr2(k, 2)​: На этой строчке​ 2).EntireRow.Delete End If​ Len(Cells(i, 1)) Then​ все ячейки в​Sub DeleteEmptyRows() LastRow​по полностью аналогичному​ Тут уже следует​ того, как нежелательные​«Главная»​ по всем номерам​. Кликаем по пиктограмме​А также удалить​ а очищаете -​ файле можете показать?​ огромное!​ Long​ = arr(i, 2)​ выдает ошибку:​ Next i Application.ScreenUpdating​ d1 = CDate(Cells(i,​ столбце D, и​ = ActiveSheet.UsedRange.Row -​ сценарию. Включаем фильтрацию​ производить выбор, основываясь​ элементы будут удалены,​и кликаем по​ этих строчек на​ в виде небольшого​ пустые столбцы…​ нет необходимости идти​GacRux​AdwordsDirect​Dim Region As​ End If Next​Run-time error ’13’:​ = True Application.Calculation​ 3) & «.»​ выбираем только пустые​ 1 + ActiveSheet.UsedRange.Rows.Count​ в таблице одним​ на фактической задаче.​ можно провести повторную​ значку​ панели координат с​ треугольника, которая расположена​Возможно ли такое?​ снизу вверх.​: Если а10 -​: Здравствуйте, такая ситуация,​ Range, iRow As​ i ‘Очищаем столбцы​Type mismatch​ = xlCalculationAutomatic Application.EnableEvents​ & Format(Cells(i, 2),​ ячейки ‘ заодно​ Application.ScreenUpdating = False​ из тех способов,​ В нашем отдельном​ сортировку по столбцу,​«Сортировка и фильтр»​ зажатой клавишей​ справа от значка​Заранее всем спасибо!​GacRux​ пусто, то удалить​ в столбце А​ Range, Cell As​
    ​ «A:B» от старых​Egor.V.A​ = True Application.DisplayStatusBar​ «00») & «.»​
    ​ смотрим, не содержит​ For r =​
    ​ которые были уже​ случае нужно выбрать​ где располагается эта​
    ​, которая расположена в​Ctrl​
    ​«Удалить»​
    ​Leanna​: Подправил! Вот только​
    ​ строку 10​ все ячейки заполнены,​ Range​ данных. Range(«A:B»).Clear ‘Выгружаем​, можно ли попросить​ = True Application.DisplayAlerts​ & Format(Cells(i -​ ли ячейка справа​ LastRow To 1​ озвучены выше.​ позицию​ нумерация от меньшего​ группе​.​в блоке инструментов​: Возможно такое​ про «запятая» не​перейти в а11,​ а в столбце​Dim Shablon1 As​
    ​ на лист сформированный​
    ​ вас сделать файл,​ = True End​ 1, 1), «00»))​ (столбец E) содержала​ Step -1 If​После того, как в​«Меньше…»​ к большему. В​«Редактирование»​Для того, чтобы убрать​«Ячейки»​200?’200px’:»+(this.scrollHeight+5)+’px’);»>Sub макрос()​ соображу,​ если а11 пусто,​ В, С, Д​ String​ массив. Cells(1).Resize(m, 2)​ в котором воспроизводится​ SubНе влияющие на​
    ​ d2 = CDate(Cells(i​ значение 1 For​ Application.CountA(Rows(r)) = 0​
    ​ шапке появились значки,​.​
    ​ таком случае таблица​. В открывшемся списке​
    ​ выбранные строки, щелкаем​
    ​. Выпадает список, в​

    CyberForum.ru

    Удалить строки в ячейке по условию (Макросы/Sub)

    ​lc = Cells(Rows.Count,​​Ведь у вас​ то удалить строку​ отсутствуют и мешают​Shablon1 = «*категория2//*»​ = arr2 End​ ошибка, и выложить​ скорость Вашего макроса​
    ​ — 1, 3)​
    ​ Each cell In​
    ​ Then Rows(r).Delete Next​ символизирующие фильтр, кликаем​Запускается окно условного форматирования.​ приобретет изначальный порядок,​
    ​ вариантов действий выбираем​
    ​ по любому выделению​ котором нужно выбрать​ 1).End(xlUp).Row​ после "Rows(i).Delete" запятых​
    ​ 11​ они, как убрать​Set Region =​ Sub​
    ​ его на форум?​ пары переключателей можно​
    ​ & "." &​

    ​ ra.Cells If (cell​ r End Sub​ по тому из​ В левом поле​

    ​ естественно за вычетом​​ пункт​
    ​ правой кнопкой мыши.​​ пункт​
    ​For i =​ нет.​а вот если​​ строки, в которых​
    ​ ActiveSheet.UsedRange​С уважением, Aksimaаксима,​

    ​Обычно я с​​ удалить.​ Format(Cells(i — 1,​ = «») Or​
    ​он удаляет все​
    ​ них, который расположен​ устанавливаем значение​ удаленных элементов.​«Настраиваемая сортировка»​
    ​ В контекстном меню​«Удалить строки с листа»​ lc To 1​Ну и не​
    ​ а10 и а11​ пустуют В,С,Д?​
    ​FirstRow = Region.Row​
    ​ увидел алгоритм удаления​ удовольствием играю в​
    ​Egor.V.A​
    ​ 2), "00") &​ (cell.Next = "1")​ пустые строки, можно​
    ​ в столбце​11000​Урок:​
    ​.​ останавливаемся на пункте​.​
    ​ Step -1​ работает! После запуска​
    ​ не пусто, то​Желательно на другой​
    ​LastRow = Region.Row​ пустых строк -​
    ​ телепата, но сегодня​
    ​: sub Primer() Application.ScreenUpdating​ "." & Format(Cells(i​
    ​ Then ' добавляем​ ли изменить строку​
    ​«Сумма выручки»​. Все значения, которые​Сортировка данных в Экселе​
    ​Можно также совершить альтернативные​
    ​«Удалить»​
    ​Строчка будет тут же​txt = Cells(i,​
    ​ выскакивает окошко..​ ничего не делать,​ лист. Спасибо.​
    ​ - 1 +​
    ​ спасибки​
    ​ что-то не хочется​
    ​ = False Application.Calculation​
    ​ - 1, 1),​
    ​ ячейку в диапазон​
    ​ условия ( if​

    ​. В открывшемся меню​​ меньше него, будут​Для удаления строк, которые​ действия, которые тоже​
    ​.​
    ​ удалена.​ "A")​Run-time error 13.​ а просто проверять​
    ​_Boroda_​ Region.Rows.Count​решил переделать под​ .​
    ​ = xlCalculationManual Application.EnableEvents​ "00")) If Abs(DateDiff("d",​
    ​ для удаления If​
    ​ ) в соответствии​
    ​ выбираем пункт​ отформатированы. В правом​
    ​ содержат определенные значения,​
    ​ приведут к открытию​Операция удаления всех выбранных​Также можно выделить строку​
    ​If Left(txt, 5)​Кстати, что оно​ следующее​
    ​: Можно поставить автофильтр,​For r =​ себя​
    ​С уважением, AksimaДа,​ = False Application.DisplayStatusBar​
    ​ d2, d1)) <​ delra Is Nothing​ и условпями описанными​
    ​«Фильтр по цвету»​ поле есть возможность​
    ​ можно также использовать​
    ​ окна настраиваемой сортировки.​ элементов будет произведена.​
    ​ в целом, щелкнув​ = "42309" Then​ означает? =)​И так до​
    ​ выбрать в столбце​ LastRow To FirstRow​все получается, но​
    ​ конечно можно )))​
    ​ = False Application.DisplayAlerts​
    ​ 7 Then Rows(i).Delete​ Then Set delra​
    ​ выше ?​. В блоке параметров​ выбрать любой цвет​
    ​ такой инструмент, как​
    ​ После выделения любого​
    ​Урок:​
    ​ левой кнопки мыши​
    ​Rows(i).Delete​
    ​Hugo​
    ​ а700​

    ​ В пустые, выделить​ Step -1​ у меня столбцов​ Прошу прощения.​ = False For​ i = i​
    ​ = cell Else​EducatedFool​«Фильтр по цвету ячейки»​

    ​ форматирования, хотя можно​​ фильтрация. Преимущество данного​ элемента таблицы переходим​Как выполнить выделение в​

    excelworld.ru

    Как удалить строку по условию пустых ячеек в столбце В,C,D? (Формулы/Formulas)

    ​ по её номеру​​ElseIf Left(txt, 1)​: Сell(i.6) — тут​Опишите это на​ ячейки в столбце​Set iRow =​ более 10.​Egor.V.A​ i = 10000​ — 1 End​
    ​ Set delra =​: Удаление строк по​

    ​выбираем значение​​ также оставить там​ способа состоит в​ во вкладку​ Excel​ на вертикальной панели​ <> «4» Then​ должна быть не​ языке макроса пожалуйста.​ А, скопировать, вставить​ Region.Rows(r — FirstRow​руками «перебирать строки​, спасибо! Исправил процедуру,​

    ​ To 1 Step​​ If End If​ Union(delra, cell) End​

    excelworld.ru

    Удалить строки по условию если в ячейке 0 (Макросы/Sub)

    ​ условию:​​«Нет заливки»​
    ​ значение по умолчанию.​ том, что, если​«Данные»​Иногда в таблице могут​ координат. После этого,​Rows(i).Delete​ точка, а запятая!​

    ​ Заранее огромное спасибо!​​ на другой лист,​ + 1)​
    ​ 36,37 алгоритма лень​

    ​ сделав ее более​​ -1 * *​ Loop End Sub​ If Next cell​(есть варианты кода​.​

    ​ После того, как​​ вам вдруг эти​. Там в группе​ встречаться пустые строчки,​

    ​ находясь во вкладке​​End If​
    ​ Уже исправились правда....​
    ​Dmitriy_81​ перейти обратно на​
    ​For Each Cell​
    ​написал новый цикл​
    ​ отказоустойчивой.​
    ​ If Cells(i, 2)​Кстати, там у​
    ​ ' если подходящие​
    ​ с разным количество​
    ​Как видим, после этого​
    ​ настройки выполнены, щелкаем​
    ​ строчки когда-нибудь понадобится​

    ​ настроек​​ данные из которых​​«Главная»​
    ​Next​Ну и "s"​
    ​: как то так​
    ​ этот лист, удалить​ In iRow.Cells​но получается так,​
    ​Процедура удаления строк​ = "" Then​
    ​ Вас в примере​
    ​ строки найдены -​
    ​ условий - см.​ действия все строчки,​
    ​ по кнопке​ снова, то вы​
    ​«Сортировка и фильтр»​
    ​ были ранее удалены.​
    ​, жмем на значок​

    ​For j =​​ забыли — потому​for i =​ строки (Главная, Удалить​If Cell Like​

    ​ что если цикл​​ по условию -​ * * *​ ошибка.​ удаляем их If​

    ​ также и комменты​​ которые были залиты​​«OK»​​ их сможете всегда​жмем на кнопку​ Такие элементы лучше​«Удалить»​ ActiveSheet.UsedRange.Columns.Count To 1​:)
    ​ и Run-time error​ 10 to 700​ — Удалить строки​

    ​ Shablon1 Then​​Dim i As​ вариант с повышенной​ * ‘Range(Cells(i, 1),​

    ​Iaroslav Gribanov​​ Not delra Is​ к статье)​ цветом с помощью​

    ​.​​ вернуть.​«Сортировка»​ убрать с листа​, размещенный в блоке​

    excelworld.ru

    Как удалить строки по условию

    ​ Step -1​​ 13.​ if cells(i,1).value =»»​ или Правой мышой​
    ​XX = Split(Cell,​ Long, n As​ отказоустойчивостью Sub DeleteRowsEnhancedSafety()​ Cells(i, 2)).Select *​
    ​:​ Nothing Then delra.EntireRow.Delete​Сергей Иванов​ условного форматирования, исчезли.​Как видим, все ячейки,​Выделяем всю таблицу или​
    ​.​ вовсе. Если они​
    ​ инструментов​EmptyColumn = True​GacRux​

    ​ then rows(i).delete end​​ — Удалить строку)​
    ​ Chr(10))​ Long, m As​ Dim i As​ * * *Cells(i,​Hugo,​

    ​ End Sub​​:​​ Они спрятаны фильтром,​​ в которых имеются​ шапку курсором с​
    ​Запускается окно настраиваемой сортировки.​ расположены рядом друг​

    ​«Ячейки»​​For i =​: О чудо, действительно​ if next i​AdwordsDirect​s = «»​ Long, k As​ Long, n As​ 2).EntireRow.Delete * *​спасибо огромное!)))​Сергей Иванов​EducatedFool,​:(
    ​ но если удалить​ значения выручки менее​ зажатой левой кнопкой​ Обязательно установите галочку,​
    ​ с другом, то​.​ 1 To lc​

    ​ всё заработало!​​ikki​:(

    ​: Да, действительно, фильтр​​For n =​ Long, a As​ Long, m As​ End If Next​
    ​Все работает!!)))))Да, я​:​
    ​Спасибо, буду смотреть.​ фильтрацию, то в​
    ​ 11000 рублей, были​ мыши. Кликаем по​ в случае её​
    ​ вполне можно воспользоваться​Для выполнения группового удаления​

    ​If Len(Trim(Cells(i, j)))​​Вот только один​:​ элементарно помог, спасиб.​ 0 To UBound(XX)​ Long Dim LastColumn%​
    ​ Long, k As​ i Application.ScreenUpdating =​ заметил) Но главное,​EducatedFool,​вроде нашел похожий​
    ​ таком случае, указанные​ окрашены в выбранный​ уже знакомой нам​ отсутствия, около пункта​ одним из способов,​

    ​ строчек, прежде всего,​​ Then​ момент. Очищается как​

    ​Dmitriy_81,​​dx84​If Not XX(n)​ LastColumn = ActiveSheet.Cells(10,​ Long Dim rng​
    ​ True Application.Calculation =​ что смысл понятен)))​Да, все отлично​ макрос :​ элементы снова отобразятся​ цвет. Если нам​
    ​ кнопке​«Мои данные содержат заголовки»​

    ​ который был описан​​ нужно произвести выделение​EmptyColumn = False​
    ​ значение в ячейке,​
    ​ну хоть проверили​: Всем доброго дня!​ Like Shablon1 Then​ Columns.Count).End(xlToLeft).Column ElseIf arr(i,​ As Range, arr()​ xlCalculationAutomatic Application.EnableEvents =​Еще раз спасибо!​
    ​ работает !​Sub УдалениеСтрок() Dim​
    ​ в документе.​ нужно сохранить изначальный​:)
    ​«Сортировка и фильтр»​, если у вашей​
    ​ выше. Но что​ необходимых элементов.​Exit For​ так и закрашенные​ бы…​

    ​Уважаемые спецы нужен​​s = s​ 3) <> vbNullString​ As Variant, response​
    ​ True Application.DisplayStatusBar =​romkq​Спасибо.​
    ​ ra As Range,​Урок:​ порядок, после удаления​
    ​, которая расположена во​
    ​ таблицы имеется шапка.​ делать, если пустых​

    ​Для того, чтобы удалить​​End If​ границы. Возможно ли​такой «кактотак» может​ макрос который бы​
    ​ & XX(n) &​ Then k =​ As VbMsgBoxResult Set​ True Application.DisplayAlerts =​

    ​: Подскажите, как решить​​Сергей Иванов​ delra As Range,​
    ​Условное форматирование в Экселе​ строк делаем дополнительную​ вкладке​ В поле​ строк много и​ несколько рядом расположенных​Next​

    ​ оставить закрашенные границы?​​ половину строк пропустить.​

    ​ удалял с листа​​ Chr(10)​ k + 1​

    ​ rng = Cells(Cells.Rows.Count,​​ True End SubНет,​ данную задачу через​: …пришла беда откуда​ cell As Range​Как видим, существует очень​ нумерацию в соседнем​«Главная»​

    planetaexcel.ru

    Удаление строк по условию (Макросы/Sub)

    ​«Сортировать по»​​ они разбросаны по​
    ​ строчек, можно выделить​
    ​If EmptyColumn Then​ Таблица разлинована.​
    ​Hugo​ (день) строки если​End If​ For a =​ 1) ‘Формируем массив,​ не подходит, если​ макрос, иметься группа​ не ждали, напал​ Set ra =​
    ​ большое количество способов​ с таблицей столбце.​. Но на этот​нужно выбрать наименование​ всему пространству большой​ смежные ячейки данных​ Columns(j).Delete​Kuzmich​: Описать то описали…​ в столбце (С)​Next​
    ​ 1 To LastColumn​

    ​ состоящий из значений​​ строк будет 200​
    ​ данных в которых​
    ​ на нашу землю​
    ​ Range([d1], Range("d" &​ удалить ненужные строки.​
    ​ Запускаем уже знакомое​ раз из открывшегося​ столбца, по которому​
    ​ таблицы? Ведь процедура​
    ​ строк, находящиеся в​
    ​Next​
    ​: Сells(i, 6).ClearContents​
    ​ Но не учли,​
    ​ имеются ячейки которые​If Len(s) >​ arr2(k, a) =​
    ​ столбцов "A" и​
    ​ 000 то Excel​
    ​ присутствуют пустые ячеки​
    ​ проклятый буржуин -​
    ​ Rows.Count).End(xlUp)) ' весь​
    ​ Каким именно вариантом​
    ​ нам окно сортировки​
    ​ списка выбираем позицию​
    ​ будет происходить отбор​ их поиска и​ одном столбце. Для​
    ​End Sub​

    ​GacRux​​ что при удалении​

    excelworld.ru

    Удаление строк по условию (Макросы/Sub)

    ​ равны 0.​​ 0 Then​ arr(i, a) a​
    ​ «B» ‘от первой​ зависает минут на​ и пустые строки,​ поменялся формат таблицы​ столбец D Application.ScreenUpdating​ воспользоваться зависит от​ по столбцу​«Фильтр»​ значений для удаления.​ удаления может занять​ этого зажимаем левую​jurafenix​
    ​: Всем спасибо! Со​ строки 10 на​
    ​Pelena​
    ​s = Mid(s,​

    ​ = a +​​ строки до последней​
    ​ 20, может возможно​
    ​ мне необходимо удалить​ (перед столбцом HIDDEN​
    ​ = False '​ поставленной задачи и​«Сумма выручки»​
    ​.​ В поле​
    ​ значительное время. Для​ кнопку мыши и​
    ​: Спасибо огромное!!!!!!!!! Все​
    ​ всеми проблемами справился!​ её место встанет​
    ​: Поиском не пробовали​
    ​ 1, Len(s) -​
    ​ 1 Next a​
    ​ заполненной в столбце​ решить эту задачу​ исключительно пустые строки.​
    ​ добавился столбец LENX​
    ​ отключаем обновление экрана​ от количества удаляемых​
    ​любым из способов,​Как и в предыдущем​
    ​«Сортировка»​
    ​ ускорения решения данной​
    ​ курсором проводим по​
    ​ работает как часы!))​
    ​Newbie​ строка 11. И​
    ​ пользоваться?​
    ​ 1)​

    ​ End If, то​​ «A». If Not​ через массивы или​

    excelworld.ru

    ​Скрытый текст как​

    макрос удалит на листе все строки, в которых содержится искомый текст:

    (пример — во вложении ConditionalRowsDeleting.xls)

    Sub УдалениеСтрокПоУсловию()
        Dim ra As Range, delra As Range, ТекстДляПоиска As String
        Application.ScreenUpdating = False    ' отключаем обновление экрана
    
        ТекстДляПоиска = "Наименование ценности"    ' удаляем строки с таким текстом
    
        ' перебираем все строки в используемом диапазоне листа
        For Each ra In ActiveSheet.UsedRange.Rows
            ' если в строке найден искомый текст
            If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
                ' добавляем строку в диапазон для удаления
                If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
            End If
        Next
        ' если подходящие строки найдены - удаляем их
        If Not delra Is Nothing Then delra.EntireRow.Delete
    End Sub

    Чтобы вместо удаления просто скрыть такие строки, замените строку

    If Not delra Is Nothing Then delra.EntireRow.Delete

    на

    If Not delra Is Nothing Then delra.EntireRow.Hidden=TRUE

    Расширенная версия этого макроса — с использованием UserForm для ввода искомого значения

    Function ПоискСтрокПоУсловию(ByVal ТекстДляПоиска As String, Optional HideOnly As Boolean) As Long
        ' функция получает в качестве параметра ТекстДляПоиска (можно использовать символы * и ?)
        ' Если HideOnly = TRUE, то строки, содержащие в ячейках ТекстДляПоиска, скрываются,
        ' иначе (HideOnly = FALSE - по умолчанию) - удаляются
        ' Функция возвращает количество удалённых строк
        Dim ra As Range, delra As Range
        Application.ScreenUpdating = False    ' отключаем обновление экрана
    
        ' перебираем все строки в используемом диапазоне листа
        For Each ra In ActiveSheet.UsedRange.Rows
            ' если в строке найден искомый текст
            If Not ra.Find(ТекстДляПоиска, , xlValues, xlPart) Is Nothing Then
                ' добавляем строку в диапазон для удаления
                If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
            End If
        Next
        On Error Resume Next: ПоискСтрокПоУсловию = delra.Areas.Count ' количество найденных строк
        
        If Not delra Is Nothing Then    ' если подходящие строки найдены - скрываем или удаляем их
            If HideOnly Then delra.EntireRow.Hidden = True Else delra.EntireRow.Delete
        End If
    End Function

    Ещё один вариант кода, позволяющего выполнять поиск (с последующим удалением или скрытием строк) сразу по нескольким условиям:

    Sub УдалениеСтрокПоНесколькимУсловиям()
        Dim ra As Range, delra As Range
        Application.ScreenUpdating = False    ' отключаем обновление экрана
    
        ' ищем и удаляем строки, содержащие заданный текст
        ' (можно указать сколько угодно значений, и использовать подстановочные знаки)
        УдалятьСтрокиСТекстом = Array("Наименование *", "Количество", _
                                      "текст?", "цен*сти", "*78*")
     
        ' перебираем все строки в используемом диапазоне листа
        For Each ra In ActiveSheet.UsedRange.Rows
            ' перебираем все фразы в массиве
            For Each word In УдалятьСтрокиСТекстом
                ' если в очередной строке листа найден искомый текст
                If Not ra.Find(word, , xlValues, xlPart) Is Nothing Then
                    ' добавляем строку в диапазон для удаления
                    If delra Is Nothing Then Set delra = ra Else Set delra = Union(delra, ra)
                End If
            Next word
        Next
     
        ' если подходящие строки найдены, то: (оставьте одну из 2 следующих строк)
        If Not delra Is Nothing Then delra.EntireRow.Hidden = True    ' скрываем их
        If Not delra Is Nothing Then delra.EntireRow.Delete    ' удаляем их
    End Sub

    Понравилась статья? Поделить с друзьями:
  • Excel удалить строки начинающиеся с
  • Excel удалить строки которые есть в списке
  • Excel удалить строки если они пустые
  • Excel удалить строки если нет в массиве
  • Excel удалить строки если в ячейке нет значения