Удаление строк по цвету |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Как можно удалить целые строки в зависимости от цвета фона? В этом примере мне нужно удалить все строки, ячейки которых заполнены синим цветом фона, как показано на следующем снимке экрана. В этой статье вы получите несколько кодов для выполнения этой задачи в Excel.
Удалить строки с определенным цветом фона на основе каждой ячейки
Удалить строки с определенным цветом фона на основе одного столбца
Удалить строки с определенным цветом фона на основе каждой ячейки
Если у вас есть диапазон данных, которые случайным образом заполнены некоторыми цветами ячеек, и вам нужно удалить строки, цвет ячейки которых синий, как показано на следующем снимке экрана:
Чтобы удалить этот тип строк, вы можете использовать следующий код VBA, сделайте следующее:
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: удалить строки, ячейки которых содержат определенный цвет заливки:
Sub DeleteRows()
'Updateby Extendoffice
Dim rngCl As Range
Dim xRows As Long
Dim xCol As Long
Dim colorLg As Long
On Error Resume Next
Set rngCl = Application.InputBox _
(Prompt:="Select a cell with the background color to be deleted", _
Title:="Kutools for Excel", Type:=8)
On Error GoTo 0
If rngCl Is Nothing Then
MsgBox "User cancelled operation." & vbCrLf & _
"Processing terminated", vbInformation, "Kutools for Excel"
Exit Sub
End If
colorLg = rngCl.Interior.Color
Application.ScreenUpdating = False
With ActiveSheet.UsedRange
For xRows = .Rows.Count To 1 Step -1
For xCol = 1 To .Columns.Count
If .Cells(xRows, xCol).Interior.Color = colorLg Then
.Rows(xRows).Delete
Exit For
End If
Next xCol
Next xRows
End With
Application.ScreenUpdating = True
End Sub
3, Затем нажмите F5 нажмите клавишу для запуска этого кода, и появится диалоговое окно, напоминающее вам о выборе ячейки с цветом заливки, который вы хотите удалить, см. снимок экрана:
4. Затем нажмите OK, и все строки были удалены, если ячейка с определенным цветом заливки.
Удалить строки с определенным цветом фона на основе одного столбца
Если вы хотите удалить строки с определенным цветом на основе только одного столбца, например, удалите строки с синим цветом в столбце A и получите снимок экрана ниже, вот также код VBA может оказать вам услугу.
1. Удерживайте ALT + F11 , чтобы открыть Microsoft Visual Basic для приложений окно.
2. Нажмите Вставить > Модулии вставьте следующий код в Модули Окно.
Код VBA: удаление строк на основе столбца, ячейки которого имеют определенный цвет заливки:
Sub deleterow()
'UpdateBY Extendoffice
Dim xRg As Range, rgDel As Range
For Each xRg In ThisWorkbook.ActiveSheet.Range("A2:A21")
If xRg.Interior.ColorIndex = 20 Then
If rgDel Is Nothing Then
Set rgDel = xRg
Else
Set rgDel = Union(rgDel, xRg)
End If
End If
Next xRg
If Not rgDel Is Nothing Then rgDel.EntireRow.Delete
End Sub
Внимание: В приведенном выше коде A2: A21 — это столбец, содержащий определенный цвет заливки, на основе которого вы хотите удалить строки, число 20 in Индекс цвета = 20 script — это индекс цвета, на основе которого вы хотите удалить строки. Вы можете изменить их по своему усмотрению.
3, Затем нажмите F5 ключ для запуска этого кода, и все строки, ячейки которых содержат синий цвет в столбце A, были удалены сразу.
Лучшие инструменты для работы в офисе
Kutools for Excel Решит большинство ваших проблем и повысит вашу производительность на 80%
- Снова использовать: Быстро вставить сложные формулы, диаграммы и все, что вы использовали раньше; Зашифровать ячейки с паролем; Создать список рассылки и отправлять электронные письма …
- Бар Супер Формулы (легко редактировать несколько строк текста и формул); Макет для чтения (легко читать и редактировать большое количество ячеек); Вставить в отфильтрованный диапазон…
- Объединить ячейки / строки / столбцы без потери данных; Разделить содержимое ячеек; Объединить повторяющиеся строки / столбцы… Предотвращение дублирования ячеек; Сравнить диапазоны…
- Выберите Дубликат или Уникальный Ряды; Выбрать пустые строки (все ячейки пустые); Супер находка и нечеткая находка во многих рабочих тетрадях; Случайный выбор …
- Точная копия Несколько ячеек без изменения ссылки на формулу; Автоматическое создание ссылок на несколько листов; Вставить пули, Флажки и многое другое …
- Извлечь текст, Добавить текст, Удалить по позиции, Удалить пробел; Создание и печать промежуточных итогов по страницам; Преобразование содержимого ячеек в комментарии…
- Суперфильтр (сохранять и применять схемы фильтров к другим листам); Расширенная сортировка по месяцам / неделям / дням, периодичности и др .; Специальный фильтр жирным, курсивом …
- Комбинируйте книги и рабочие листы; Объединить таблицы на основе ключевых столбцов; Разделить данные на несколько листов; Пакетное преобразование xls, xlsx и PDF…
- Более 300 мощных функций. Поддерживает Office/Excel 2007-2021 и 365. Поддерживает все языки. Простое развертывание на вашем предприятии или в организации. Полнофункциональная 30-дневная бесплатная пробная версия. 60-дневная гарантия возврата денег.
Вкладка Office: интерфейс с вкладками в Office и упрощение работы
- Включение редактирования и чтения с вкладками в Word, Excel, PowerPoint, Издатель, доступ, Visio и проект.
- Открывайте и создавайте несколько документов на новых вкладках одного окна, а не в новых окнах.
- Повышает вашу продуктивность на 50% и сокращает количество щелчков мышью на сотни каждый день!
Ailuna Пользователь Сообщений: 9 |
Всем привет! Помогите, необходимо на данном листе удалить закрашенные ячейки (список позиций большой), удалять вручную очень долго. Искала ответы, но так и не смогла. |
bedvit Пользователь Сообщений: 2477 Виталий |
Ailuna, каким образом вы их хотите удалить? Сотсвигом вверх или влево? Вы понимаете, что все данные поедут и не будет соответствия по строкам/столбцам, которое раньше было? «Бритва Оккама» или «Принцип Калашникова»? |
bedvit Пользователь Сообщений: 2477 Виталий |
Прикрепите пример, что было, что должно стать. «Бритва Оккама» или «Принцип Калашникова»? |
Ailuna Пользователь Сообщений: 9 |
Сдвигом вверх, мне необходимо найти новинки 5 и 6 колонка (те позиций, которые не залиты на сайт), до этого соединила два листа и выбрала повторяющийся значения. Могу полностью файл скинут, но он слишком большой, из-за этого сделала только скрин. |
alexleoix Пользователь Сообщений: 434 |
|
Пытливый Пользователь Сообщений: 4587 |
Ailuna, не надо целый файл, не надо скрин. Надо файл-пример, строк на 10-15, в котором показать — вот данные расположены так, вот их закрасили, хочу, чтобы получилось в результате — вот сяк. Кому решение нужно — тот пример и рисует. |
Ailuna Пользователь Сообщений: 9 |
Вот так? и спасибо alexleoix , но необходимо только 5 и 6 колонка) |
alexleoix Пользователь Сообщений: 434 |
Ну тогда, ставите фильтр на нужный столбец, фильтруете закрашенные ячейки, выделяете столбец, F5 => «Выделить» => «Только видимые ячейки», на оставшихся (отфильтрованных) ячейках — контекстное меню (ПКМ) => «Удалить строки». Снимаете фильтр. Изменено: alexleoix — 11.12.2018 10:25:01 |
Ailuna Пользователь Сообщений: 9 |
фильтр не помогает, очень долго грузить и не отвечает( |
alexleoix Пользователь Сообщений: 434 |
А сколько у Вас строк в реальном файле? |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#11 11.12.2018 11:37:04
<#0> |
|
Ailuna Пользователь Сообщений: 9 |
|
Ailuna Пользователь Сообщений: 9 |
JayBhagavan, извините, но я может неправильно что-то делаю, но этот способ не помог |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#14 11.12.2018 20:46:26
Конкретнее. <#0> |
||
Ailuna Пользователь Сообщений: 9 |
JayBhagavan, ничего не произошло, вставила, может не правильно делаю? Да, неправильно. Приложили файлы большого объема (см. правила форума) [МОДЕРАТОР] |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
У меня работает. <#0> |
_Igor_61 Пользователь Сообщений: 3007 |
#17 11.12.2018 21:07:46
Ailuna, тогда на форуме будет понятней почему у Вас
и Вам смогут помочь |
||||
Ailuna Пользователь Сообщений: 9 |
JayBhagavan, а я могу вам файл скинуть? _Igor_61, у меня не получается на примере, когда копирую, пропадает заливка |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
<#0> |
_Igor_61 Пользователь Сообщений: 3007 |
Ailuna, наверное в Вашем файле условное форматирование применяется, поэтому при удалении строк и заливка исчезает. Ну тогда попробуйте куда-то на облако или яндекс-диск, а сюда ссылку |
Ailuna Пользователь Сообщений: 9 |
Изменено: Ailuna — 11.12.2018 21:39:51 |
JayBhagavan Пользователь Сообщений: 11833 ПОЛ: МУЖСКОЙ | Win10x64, MSO2019x64 |
#22 11.12.2018 21:49:09 _Igor_61, был прав. У Вас в файле ячейки не с заливкой, а с условным форматированием. + отсюда ещё и тормоза. Создайте доп. столбец. В него формулу из УФ. Отфильтруйте данные по доп. столбцу и чистите их. <#0> |
На чтение 2 мин. Просмотров 49 Опубликовано 23.05.2021
Как удалить целые строки в зависимости от цвета фона? В этом примере мне нужно удалить все строки, ячейки которых заполнены синим цветом фона, как показано на следующем снимке экрана. В этой статье вы получите несколько кодов для выполнения этой задачи в Excel.
Удалить строки с определенным цветом фона на основе каждой ячейки
Удалить строки с определенным цветом фона на основе одного столбца
Удалить строки с определенным цветом фона на основе каждая ячейка
Если у вас есть диапазон данных, который случайным образом заполнен некоторыми цветами ячеек, и вам нужно удалить строки, у которых цвет ячейки синий, как показано на следующем снимке экрана:
Чтобы удалить этот тип строк, вы можете использовать следующий VBA код, сделайте следующее:
1 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .
2 . Нажмите Вставить > Module и вставьте следующий код в окно Module .
Код VBA: удалите строки, ячейки которых содержат определенный цвет заливки:
3 . Затем нажмите клавишу F5 , чтобы запустить этот код, и появится окно подсказки, напоминающее вам о выборе ячейки с цветом заливки, который вы хотите удалить, см. Снимок экрана:
4 . Затем нажмите OK , и все строки будут удалены, если ячейка с определенным цветом заливки.
Удалить строки с определенным цветом фона на основе одного столбца
Если вы хотите удалить строки с конкретный цвет на основе только одного столбца, например, удалите строки с синим цветом в столбце A и получите снимок экрана ниже, здесь также код VBA может оказать вам услугу.
1 . Удерживая нажатыми клавиши ALT + F11 , откройте окно Microsoft Visual Basic для приложений .
2 . Нажмите Вставить > Module и вставьте следующий код в окно Module .
Код VBA: удаление строк на основе столбца, ячейки которого имеют определенный цвет заливки:
Примечание : в приведенном выше коде , – это столбец, содержащий определенный цвет заливки, на основе которого вы хотите удалить строки, номер 20 в скрипте ColorIndex = 20 – это индекс цвета, на основе которого вы хотите удалить строки. Вы можете изменить их по своему усмотрению.
3 . Затем нажмите клавишу F5 , чтобы запустить этот код, и все строки, ячейки которых содержат синий цвет в столбце A, были удалены сразу.
У меня есть строки — выходные и праздники, они покрашены серым (не условное_форматирование) хорошо бы их с помощью макроса удалять, так как подгрузку данных мне не удаётся настроить, а каждый раз за 5+ лет удалять строки я запарюсь (уже).
Спасибо!
если у вас 2007 эксель, то там есть фильтр по цвету, поставить его и выделенные строки удалить
если 2003, то нужно вставить такой макрос
Sub delete_rows()
r = 1
While r <= ActiveSheet.UsedRange.Rows.Count
If Cells(r, 1).Interior.ColorIndex <> xlNone Then
Rows(r).Delete shift:=xlUp
r = r — 1
End If
r = r + 1
Wend
End Sub
Не торопись, и все успеешь намного быстрее
А теперь задача немного изменилась — есть лист 1 с датами и есть лист 2 с датами, необоходимо удалить строки в обоих листах с единожды повторяющимеся значениями. таким образом остануться даты которые встречаются на обоих листах.
думаю, так это можно сделать, хотя можно и формулами если(еошибка(поискпоз());0;1), поставить фильтр с 0, и удалить эти строки.
Не торопись, и все успеешь намного быстрее