gjf
Platinum Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору andrewkard1980 (00:00 10-04-2013) Цитата: Наверное лучше между Cells(i1, 5) & Cells(i1, 6) установить какой-то разделитель, а то могут быть ошибки | Принимается. Все цифры в указанных столбцах меньше 100, таким образом разделителем может быть, например, 888: Код: Sub DelDouble1() lastrow = Cells(Rows.Count, 5).End(xlUp).Row For i1 = 1 To lastrow i2 = i1 + 1 While Cells(i1, 5) & 888 & Cells(i1, 6) & 888 & Cells(i1, 7) & 888 & Cells(i1, 8) & 888 & Cells(i1, 9) & 888 & Cells(i1, 10) & 888 & Cells(i1, 11)= Cells(i2, 5) & 888 & Cells(i2, 6) & 888 & Cells(i2, 7) & 888 & Cells(i2, 8) & 888 & Cells(i2, 9) & 888 & Cells(i2, 10)& 888 & Cells(i2, 11) Rows(i2).Delete lastrow = lastrow - 1 Wend Next End Sub | andrewkard1980 (00:00 10-04-2013) Цитата: Для удаления дубликатов лучше идти с конца в начало: For i1 = lastrow to 1 step -1 | При каждом удалении строки в цикле while-wend мы уменьшаем значение lastrow. В противном случае собъётся нумерация строк. Я не уверен, что если организовать так: Код: Sub DelDouble1() lastrow = Cells(Rows.Count, 5).End(xlUp).Row For i1 = lastrow To 1 Step -1 i2 = i1 -1 1 While Cells(i1, 5) & 888 & Cells(i1, 6) & 888 & Cells(i1, 7) & 888 & Cells(i1, 8) & 888 & Cells(i1, 9) & 888 & Cells(i1, 10) & 888 & Cells(i1, 11)= Cells(i2, 5) & 888 & Cells(i2, 6) & 888 & Cells(i2, 7) & 888 & Cells(i2, 8) & 888 & Cells(i2, 9) & 888 & Cells(i2, 10)& 888 & Cells(i2, 11) Rows(i2).Delete lastrow = lastrow - 1 Wend Next End Sub | не будет конфликта из-за изменения стартовой величины lastrow в цикле for с каждым шагом цикла. Может я и туплю - но у меня тут уже середина ночи Если есть светлые идеи - выразите в готовом коде. Добавлено: P.S. Стоп-стоять: в Excell VBA для числовых данных операция & - это логическое И или просто слияние строки? Если И - то никакие разделители нас не спасут. Если слияние строки - то можно ввести любой символ, его среди чисел точно не встретится. Проще говоря: в коде у нас математическое сравнение или строчное?
---------- Тут могла бы быть Ваша реклама... или эпитафия |
| Всего записей: 11444 | Зарегистр. 14-03-2007 | Отправлено: 02:13 10-04-2013 | Исправлено: gjf, 10:45 10-04-2013 |
|