Страницы: 1
RSS
Удаление строк содержащих нормальный шрифт.
 
В данном примере я хочу чтобы остались только строки с жирным шрифтом, а с обычным удалились.
 
можно так:
Код
Columns(2).SpecialCells(2).EntireRow.Delete
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Я совсем слабый в кодах. Пожалуйста напишите подробно как всё сделать.  
 
нужно было выполнить макрос
Код
Sub DelSameRows()
  Columns(2).SpecialCells(2).EntireRow.Delete
End Sub
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!
 
Игорь, приветствую! Для этого конкретного примера подойдёт, но не по теме же)))

Для других: макрос удаляет те строки, ячейки которых во втором столбце пустые. Никакой ориентировки на "жирность".
Впрочем, думаю, что ТС именно это и имел ввиду — тогда название темы «Удалить строки с пустыми ячейками»

UPD: Раз уж начал тут разводить, то вот вариант с "жирностью"  :)
Выделяете диапазон (или столбец целиком), в котором нужно удалить НЕжирные строки и запускаете макрос
Код
Option Explicit
Sub УдалитьНормальныйШрифт()
Dim sel As Range, cl As Range, gr As Range

    If Selection.Rows.Count > ActiveSheet.UsedRange.Rows.Count Then
        Set sel = Intersect(Selection, ActiveSheet.UsedRange)
    Else
        Set sel = Selection
    End If
    
    For Each cl In sel
        If cl.Font.Bold = False Then
            If gr Is Nothing Then
                Set gr = cl
            Else
                Set gr = Union(gr, cl)
            End If
        End If
    Next cl
    If Not gr Is Nothing Then gr.EntireRow.Delete
End Sub
Изменено: Jack Famous - 05.04.2018 18:28:54
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Нет, этот файл я просто кинул как пример,меня интересует именно макрос который применим ко всем файлам, где бы удалялись строки неимеющие ячеек с жирным шрифтом
 
Smirn328641, обновил пост выше  ;)
Цитата
Smirn328641 написал:
напишите подробно как всё сделать
автор сайта давно это сделал  :)
Изменено: Jack Famous - 05.04.2018 18:43:15
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Ваш код не работает, если одна ячейка в строке жирным шрифтом а другие нормальным, такая строка удаляется.
И вообще хочу проконсультироваться мож я что неправильно делаю. alt+F11 --->insert--->module в появившемся окне вставляю ваш код и жму F5, потом сворачиваю и смотрю на лист Excel.
 
Цитата
Smirn328641 написал:
хочу чтобы остались только строки с жирным шрифтом, а с обычным удалились
Цитата
Smirn328641 написал:
Ваш код не работает, если одна ячейка в строке жирным шрифтом а другие нормальным, такая строка удаляется.
мой код работает и делает всё как вы сказали. Ссылку о том, как пользоваться макросами я дал в предыдущем ответе. В моём файле макрос уже есть. Выделяете диапазон или столбец, жмёте Alt+F8 и запускаете макрос.

Выделять нужно диапазон в ОДНОМ столбце или ОДИН столбец целиком. Макрос проверяет каждую ячейку, применено ли к ней "жирное" форматирование и, если да, то запоминает. После просмотра всего диапазона удаляет "запомненные" ячейки целиком со строкой.
Изменено: Jack Famous - 05.04.2018 18:50:40
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Джек, автору нужно немного иначе )
 
Юрий М, вот пусть он сначала разберётся, КАК "иначе", а потом и нам покажет, что он имеет ввиду  :D  Пока я пас)))
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Я понял так: если ВСЕ ячейки в строке жирные, то...
 
Юрий М, в примере и шапке ни намёка на это)
в шапке вообще "хочу по щучьему велению")) можно было руками удалить и отправить готовый файл обратно)
Изменено: Jack Famous - 05.04.2018 18:56:38
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Зато было уточнение (запоздалое, согласен):
Цитата
Smirn328641 написал:
удалялись строки неимеющие ячеек с жирным шрифтом
 
Юрий М, так и что? В примере в 1 столбце и жирные и обычные - во втором, напротив жирных ничего, напротив обычных обычный шрифт с заливкой.
Я тут гадать и перебирать варианты не собираюсь - мне больше всех надо, что-ли?))) вот пусть ТС составит пример как положено - с листами "как есть" и "как надо" и объяснит принцип, по которому макрос должен работать: что ТС выделяет или не выделяет и так далее…
Изменено: Jack Famous - 05.04.2018 19:03:22
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Я согласен: пример неудачный.
 
Да согласен, действительно некорректно сформулировал. Вот новый пример. Нужно чтобы остались только строки, в которых хотя бы одна ячейка содержит жирный шрифт, а остальные удалить. Или же остались строки в ячейке А которых текст заканчивался на Итог и неважно жирным или нежирным.
 
Smirn328641, немного изменилась 12 строка кода — принцип тот же. Теперь оставляет и жирные и с Итогами на конце. Проверяйте
Код
Option Explicit
Sub ОставитьЖирныеИИтоги()
Dim sel As Range, cl As Range, gr As Range
  
    If Selection.Rows.Count > ActiveSheet.UsedRange.Rows.Count Then
        Set sel = Intersect(Selection, ActiveSheet.UsedRange)
    Else
        Set sel = Selection
    End If
      
    For Each cl In sel
        If (cl.Font.Bold = False) And (Not cl.Value Like "*Итог") Then
            If gr Is Nothing Then
                Set gr = cl
            Else
                Set gr = Union(gr, cl)
            End If
        End If
    Next cl
    If Not gr Is Nothing Then gr.EntireRow.Delete
End Sub
но, чувствую, что это ещё не всё  :D
Изменено: Jack Famous - 06.04.2018 12:25:47
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Что-то у меня всё просто удаляется или я совсем чайник). Данный код я копирую alt+F11 --->insert--->module в появившемся окне вставляю ваш код и жму F5. Верно я всё делаю?
 
Цитата
Smirn328641 написал:
всё просто удаляется
снова заменил 12 строку в #18 и добавил ваш файл-пример с макросом внутри (теперь потестил - работает).
Цитата
Smirn328641 написал:
Верно я всё делаю?
НЕТ :excl:
В #7 я дал вам ссылку на статью о макросах — вы ёё, похоже, так и не посмотрели.
Цитата
Юрий М написал:
Я понял так: если ВСЕ ячейки в строке жирные, то...
Юрий М, как видите, вы тоже не угадали  :D

Название темы (модераторам): Удалить строки по маске и признаку шрифта
Изменено: Jack Famous - 06.04.2018 16:43:12
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Спасибо большое за понимание и снисходительность, во всём разобрался, всё работатет.  
Страницы: 1
Наверх