Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 07.03.2011, 14:59   #1
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию окрасить дубликаты

Всем добрый день!
Пользуюсь макросом для окраски дубликатов , но появилась необходимость окрасить дубликаты в колонке B , но в ней много пустых ячеек. Ячейки должны оставаться пустыми, а вот дубликаты надо окрасить. Помогите, пожалуйста
Заранее благодарю
Рома
Вложения
Тип файла: zip ZajavkiR.zip (21.7 Кб, 14 просмотров)
Romuald вне форума Ответить с цитированием
Старый 07.03.2011, 15:27   #2
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Можно так:
Код:
Sub Main()
    Dim i As Long, j As Integer, cell As Range, x As Range
    With Application
        .FindFormat.Clear: .ReplaceFormat.Clear: .ScreenUpdating = False
        Set x = Range([B2], Cells(Rows.Count, 2).End(xlUp)): j = 3
        For Each cell In x
            If cell <> "" Then
                If .CountIf(x, cell) > 1 Then
                    .ReplaceFormat.Interior.ColorIndex = j
                    .[B:B].Replace cell, cell, , , , , , True
                    j = IIf(j = 56, 3, j + 1)
    End If: End If: Next: End With
End Sub
Пример во вложении.
Вложения
Тип файла: rar ZajavkiR_2.rar (17.8 Кб, 23 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 07.03.2011, 15:58   #3
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

окрасил в желтый
Вложения
Тип файла: rar Книга606.rar (17.6 Кб, 20 просмотров)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.03.2011, 15:58   #4
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Для корректной работы, нужно добавить предварительное "обесцвечивание" столбца "B". А если еще добавить проверку того, что текущая ячейка уже окрашена, то время выполнения макроса существенно уменьшится. Т.е. так:
Код:
Sub Main()
    Dim i As Long, j As Integer, cell As Range, x As Range
    With Application
        .FindFormat.Clear: .ReplaceFormat.Clear: .ScreenUpdating = False
        Set x = Range([B2], Cells(Rows.Count, 2).End(xlUp))
        x.Interior.ColorIndex = xlNone: j = 3
        For Each cell In x
            If cell <> "" Then
                If cell.Interior.ColorIndex < 0 Then
                    If .CountIf(x, cell) > 1 Then
                        .ReplaceFormat.Interior.ColorIndex = j
                        .[B:B].Replace cell, cell, , , , , , True
                        j = IIf(j = 18, 3, j + 1)
    End If: End If: End If: Next: End With
End Sub
P.S. To IgorGO: я так понял, что разные дубликаты требуется окрасить в разные цвета.
P.P.S. Преимуществом предлагаемого способа является то, что все дубликаты окрашиваются "разом", сколько бы их не было.
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 07.03.2011 в 16:05.
SAS888 вне форума Ответить с цитированием
Старый 07.03.2011, 16:05   #5
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

ну... в разные - это только макросом
главное теперь - чтобы количество совпадений не превысило количество цветов)))
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 07.03.2011, 16:33   #6
Romuald
Форумчанин
 
Регистрация: 12.11.2007
Сообщений: 209
По умолчанию

SAS888 и IgorGo
Спасибо Вам Огромное!!!!!!!!!!!!!!!!
Romuald вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
матрица и дубликаты... xakkkkker Помощь студентам 3 05.12.2010 20:11
возникают дубликаты главного окна guenko Win Api 2 13.05.2010 22:29
Про дубликаты. В N-ый раз. Azz100 Microsoft Office Excel 10 11.02.2010 13:15
Помогите найти дубликаты в столбце komar73 Microsoft Office Excel 8 30.06.2009 20:21