|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
30.04.2012, 17:16 | #1 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Как считать в массив и найти дубли
Добрый всем день!
Написал макрос, который ищет: есть ли дубли в стобце и заливает цветом ячейки с дублями. Если количество строк небольшое (до 1000), то время выполнения программы устраивает, а если строк несколько десятков тысяч, то время очень не устраивает. Предполагаю, что надо диапазон считать в массив и в нём уже перебирать.Т.к. VBA осваиваю самостоятельно, методом тыка, то нужных знаний не хватает, если кто- то может помочь, то очень вас прошу. Код, который я написал вот он: Sub Найти_дубли() Dim i As Long, ii As Long, sch As Long, ARange As Range, a As Range, oRow As Long, str As Long Application.ScreenUpdating = False Tm = Timer For str = 65536 To 5 Step -1 If Cells(str, 3).Value <> vbNullString Then str = str: Exit For Next Set ARange = Range(Cells(5, 3), Cells(str, 3)) For Each a In ARange a = Application.WorksheetFunction.Trim( a) Next ARange.Interior.ColorIndex = xlNone ''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''' '''''''''''''''''''''' i = 5 Do ii = i + 1 Do If Cells(ii, 3).Interior.ColorIndex = 3 Then GoTo dalee If Cells(i, 3).Value = Cells(ii, 3).Value Then Cells(i, 3).Interior.ColorIndex = 3 Cells(ii, 3).Interior.ColorIndex = 3 End If dalee: ii = ii + 1 Loop While ii <= str Application.StatusBar = "Обрабатывается " & i - 4 & " строка из " & str - 4 i = i + 1 Loop While i <= str ''''''''''''''''''''''''''''''''''' ''''''''''''''''''''''''''''''''''' '''''''''''''''''''''' pipec: With Application .ScreenUpdating = False .StatusBar = False End With MsgBox (Timer - Tm) End Sub |
30.04.2012, 17:50 | #2 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
Попробуйте так:
Код:
Код:
Последний раз редактировалось nilem; 30.04.2012 в 18:00. |
30.04.2012, 18:07 | #3 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Спасибо, nilem! А как подправить Ваш код, чтобы он закрашивал обе одинаковые ячейки ?
|
30.04.2012, 18:19 | #4 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
наверное, так
Код:
|
30.04.2012, 18:42 | #5 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Спасибо ! Способ, который "по-модному" мне больше понравился из-за отсутствия On Error Resume Next, если Вас не затруднит, немогли бы Вы, пожалуйста, в нём дописать закраску обеих ячеек ?
|
30.04.2012, 19:46 | #6 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
Дело в том, что у ArrayList есть только ключи, айтемз нет (в этом случае нужны коллекции типа SortedList), поэтому давайте возьмем словарь (тоже пока еще в моде)
Код:
|
30.04.2012, 19:49 | #7 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Очень Вам благодарен, nilem !!!
|
30.04.2012, 20:11 | #8 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Опасаюсь показаться наглым и навязчивым. Уважаемый nilem, моих знаний не хватает, чтобы подправить Ваш последний код так, чтобы он не окрашивал пустые ячейки. Понимаю, что всякому терпению есть предел, но если Вас не очень затруднит, не могли бы Вы, пожалуйста, дописать это в коде ?
|
30.04.2012, 20:18 | #9 |
Форумчанин
Регистрация: 25.04.2010
Сообщений: 616
|
да ладно
Код:
|
30.04.2012, 20:26 | #10 |
Пользователь
Регистрация: 13.08.2011
Сообщений: 90
|
Большое спасибо! Поздравляю Вас с наступающими праздниками!
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
не могу считать двумерный массив=((( | pinch000 | Общие вопросы C/C++ | 15 | 02.01.2012 14:35 |
как считать из файла в массив по символьно? | casper1991 | Visual C++ | 1 | 12.04.2011 20:39 |
Как считать массив из файла? | Ronin021992 | Общие вопросы C/C++ | 4 | 16.12.2009 20:44 |
как отсортировать массив под данный отрезок и как минимум и максимум из него найти | SIEGER | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 20.11.2008 08:58 |
как считать имена файлов из директории и поддерикторий в массив, ХЭЛП | uraveselov | Microsoft Office Excel | 2 | 10.04.2008 09:50 |