Страницы: 1
RSS
Очистка ячеек произвольного диапазона по цвету текста в ячейки
 
Добрый день!
Требуется очистить ячейки в произвольном диапазоне (а то и во всём листе) по признаку цвета текста, цифр в ячейке.
Цикл работает, ячейки не чистятся, ошибка при  Cell.ClearContents.
Вот что сообразил и вспомнил:
Код
Public Function SBC(DataRange As Range, ColorSample As Range) As Double
Dim Sum As Double
Application.Volatile True
For Each Cell In DataRange
    If Cell.Font.Color = ColorSample.Font.Color Then
'       Cell.ClearContents
        Sum = Sum + 1
    End If
Next Cell
SBC = Sum
End Function

Элементарно прошу помочь в элементарном. Сто лет здесь не был.
Спасибо.
 
Если вызываете функцию непосредственно с листа - то и правильно ошибка появляется. UDF не могут этого делать. Код надо выносить в процедуру или как минимум из процедуры вызывать.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
 
Дмитрий(The_Prist) Щербаков,  Не получилось ....
 
Цитата
Дмитрий(The_Prist) Щербаков: UDF не могут этого делать. Код надо выносить в процедуру или как минимум из процедуры вызывать
Цитата
march: Не получилось ....
а вы пробовали? Покажите код тут
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Заработало, глядя на соседнюю ветку "Запись текста в ячейки с определенным цветом"
Код
Sub Clear_ws_Color
'очистка ячеек с красным текстом 
For Each i In ThisWorkbook.Worksheets("ТребуемыйЛист").UsedRange
    If i.Font.Color = 255 Then i.Clear
Next i
End Sub
Зачистка только на весь лист, но это сейчас меня устраивает..

Спасибо всем!
Изменено: march - 21.01.2020 14:00:40
 
march, попробуйте так:
Код с комментрариями
Изменено: Jack Famous - 21.01.2020 14:50:27
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
 
Jack Famous, Спасибо, ваше решение более универсально и красиво.
 
march, спасибо и вам  ;)
Если диапазоны будут огромные, то можно будет ускорить
Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄
Страницы: 1
Наверх