Удаление строк по цвету |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
||||||||
Ответить |
Как можно удалить целые строки в зависимости от цвета фона? В этом примере мне нужно удалить все строки, ячейки которых заполнены синим цветом фона, как показано на следующем снимке экрана. В этой статье вы получите несколько кодов для выполнения этой задачи в 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% и сокращает количество щелчков мышью на сотни каждый день!
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
1 |
|
Очистить ячейки определенного цвета; выделить строку при вводе значения в ячейку25.04.2013, 11:37. Показов 16982. Ответов 14
Вопрос просто.
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
25.04.2013, 11:47 |
2 |
для очистки только макрос.
0 |
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
25.04.2013, 12:07 [ТС] |
3 |
Щас сделаю, ждите.
0 |
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
25.04.2013, 12:14 [ТС] |
4 |
Держите, суть задачи в первом листе
0 |
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
25.04.2013, 13:36 [ТС] |
5 |
для очистки только макрос. Ну что Влад, вы мне поможете?
0 |
Vlad999 3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
||||||
25.04.2013, 14:12 |
6 |
|||||
на удаление значений макрос такой
на счет выделения посмотрите пример может подойдет. Вложения
0 |
totoxa99 0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
||||||||
25.04.2013, 14:43 [ТС] |
7 |
|||||||
на удаление значений макрос такой
на счет выделения посмотрите пример может подойдет. Подскажите, как и каким образом пользоваться этими кодами, не имею ни малейшего понятия. Правда. Добавлено через 2 минуты
на удаление значений макрос такой
на счет выделения посмотрите пример может подойдет. Интересный вариант с выделением строки, но, можно ли реализовать так как я бы хотел? Тобишь повторюсь, при постановке в значение определенных ячеек, она сразу подсвечивается цветом или хоть как то выделяется, автоматически, при удаление, возвращается в исходное
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
25.04.2013, 15:23 |
8 |
так?
0 |
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
25.04.2013, 15:51 [ТС] |
9 |
так? Обалденно!!!)))
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
25.04.2013, 15:58 |
10 |
об этом нигде не упоминалось.
0 |
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
25.04.2013, 16:09 [ТС] |
11 |
об этом нигде не упоминалось. Ну как же, в нопку даже в вашей есть, очистить столбец метраж, я так понимание те параметры, которые я задавал)) C65 — C82? столбец длина )
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
25.04.2013, 16:13 |
12 |
не тот диапазон задал, сейчас поправлю.
1 |
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
25.04.2013, 16:16 [ТС] |
13 |
не тот диапазон задал, сейчас поправлю. Спасибо большое, только я почему-то цвет не могу изменить определенно этого диапазона. которые в столбце С находиться)))
0 |
3827 / 2254 / 751 Регистрация: 02.11.2012 Сообщений: 5,928 |
|
25.04.2013, 16:19 |
14 |
смотрите файл в сообщении выше там поправил диапазоны в макросе и УФ.
1 |
0 / 0 / 0 Регистрация: 14.02.2013 Сообщений: 62 |
|
25.04.2013, 17:04 [ТС] |
15 |
Как всегда большое вам спасибо! Не первый раз выручаете)
0 |
IT_Exp Эксперт 87844 / 49110 / 22898 Регистрация: 17.06.2006 Сообщений: 92,604 |
25.04.2013, 17:04 |
15 |
В таблице имеется n-е кол-во строк жёлтого цвета. Каким образом их можно удалить со смешением вверх |
|
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
Если заливка условным форматированием, то задача усложняется. Если нет — обычный макрос с этим справится. |
Юрий М нигде не помечал, что тема закрытая, заливка без условного форматирования. |
|
И где (как?) указать цвет? |
|
{quote}{login=Юрий М}{date=25.02.2010 11:13}{thema=}{post}Если заливка условным форматированием, то задача усложняется. Если нет — обычный макрос с этим справится.{/post}{/quote}А почему с УФ задача усложниться? Разве нальзя искать (и удалить) строки по условию формата? |
|
А можно увидеть пример кода на VBA, где задаётся условие удаления — цвет, пожалуйста. |
|
Юрий М Модератор Сообщений: 60570 Контакты см. в профиле |
С пометкой я ошибся — не туда глянул Извиняюсь. |
Ученик Гость |
#8 25.02.2010 23:28:51 Спасибо, Юрий М., вы наверное устаёте помогать такому количеству людей, но делаете благородное дело. |
This code uses Find
to quickly clear cells matching your desired format
The line to update for other cell fromats is:
.FindFormat.Interior.Color = Excel.XlRgbColor.rgbOrange
Option Explicit
Sub FastFind()
Dim rng1 As Range
Dim rng2 As Range
Dim cel1 As Range
Dim strFirstAddress As String
Dim lAppCalc As Long
'Get working range from user
On Error Resume Next
Set rng1 = Application.InputBox("Please select range to search for ", "User range selection", Selection.Address(0, 0), , , , , 8)
On Error GoTo 0
If rng1 Is Nothing Then Exit Sub
With Application
lAppCalc = .Calculation
.ScreenUpdating = False
.Calculation = xlCalculationManual
.FindFormat.Interior.Color = Excel.XlRgbColor.rgbOrange
End With
Set cel1 = rng1.Find("", , xlValues, xlPart, xlByRows, , , , True)
If Not cel1 Is Nothing Then
Set rng2 = cel1
strFirstAddress = cel1.Address
Do
Set cel1 = rng1.Find("", cel1, xlValues, xlPart, xlByRows, , , , True)
Set rng2 = Union(rng2, cel1)
Loop While strFirstAddress <> cel1.Address
End If
If Not rng2 Is Nothing Then rng2.Clear
With Application
.ScreenUpdating = True
.Calculation = lAppCalc
End With
End Sub