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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.01.2012, 15:02   #1
Bulkyn
Новичок
Джуниор
 
Регистрация: 16.01.2012
Сообщений: 1
По умолчанию Поиск дублирующих записей

Мне надо сравнить три столбца отдельно по каждому на предмет повтора.
Дублирующиеся красятся и еще с 20 по 22 столбцы должны проставлятся 1-цы. Но у меня срабатывает только первый цикл, т.е. поиск по 1-му стоблцу и выходит ошибка 1004 на строке отмечанный желтым. Почему эта ошибка выходит?
Заранее прошу прощения, очень очень новичок. Скачал макрос, попробовал переделать.
более 300 тыс строк((

структура такая: Порядковый номер, Фамилия, Имя, Отчество.


Sub Macro1()
For a = 1 To 302057
If Cells(a, 2).Value <> "" And Cells(a, 3).Value <> 1 Then
For b = 1 To 302057
If b <> a Then
If Cells(a, 2).Value = Cells(b, 2).Value Then
Cells(a, 2).Interior.ColorIndex = 4
Cells(b, 2).Interior.ColorIndex = 3
Cells(b, 20).Value = 1
End If
End If
Next
End If
Next

For c = 1 To 302057
If Cells(c, 3).Value <> "" And Cells(c, 4).Value <> 1 Then
For d = 1 To 302057
If d <> c Then
If Cells(c, 3).Value = Cells(d, 3).Value Then
Cells(c, 3).Interior.ColorIndex = 4
Cells(d, 3).Interior.ColorIndex = 3
Cells(d, 21).Value = 1
End If
End If
Next
End If
Next

For f = 1 To 302057
If Cells(f, 4).Value <> "" And Cells(f, 5).Value <> 1 Then
For e = 1 To 302057
If f <> e Then
If Cells(f, 4).Value = Cells(e, 4).Value Then
Cells(f, 4).Interior.ColorIndex = 4
Cells(e, 4).Interior.ColorIndex = 3
Cells(e, 22).Value = 1
End If
End If
Next
End If
Next

End Sub

Последний раз редактировалось Bulkyn; 16.01.2012 в 15:05.
Bulkyn вне форума Ответить с цитированием
Старый 16.01.2012, 18:20   #2
motorway
Участник клуба
 
Регистрация: 28.06.2009
Сообщений: 1,950
По умолчанию

А что конкретно пишет в той ошибке? Может, там с этими ячейками что-то особенное происходит, чего нет в других?
Если просто вставить этот код и запустить, то у меня он отрабатывает нормально, но это на пустом листе.
motorway вне форума Ответить с цитированием
Старый 16.01.2012, 18:54   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Надо макрос "с нуля" переписывать
При таких объёмах данных перебирать ячейки - макрос будет работать ОЧЕНЬ долго...

Нужен пример файла (не 300 тыс строк, а поменьше - 300 или 3000 строк достаточно),
и подробное описание, что должен делать макрос.
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Выборка дублирующих строк kity Microsoft Office Access 3 27.05.2011 11:31
Поиск в массиве записей Marfeys Помощь студентам 4 24.11.2010 05:14
Поиск записей skiffter Помощь студентам 2 10.11.2009 17:54
Поиск нескольких записей VenMaster БД в Delphi 1 14.06.2008 22:48
Поиск записей в ListBox Askat БД в Delphi 1 18.06.2007 10:05