Доброго времени суток уважаемые форумчане! Прошу помощи! В макросе переношу данные с одного листа книги в другой - но строки содержат дубликаты, которые необходимо удалить. Но дело в том - что уникальное значение для отлова дубликата появляться только путем склеивания нескольких ячеек пири вставке на лист из массива! Возможно ли отловить эти дуликаты внутри массива - до вставки на лист?
Доброго времени суток уважаемые форумчане! Прошу помощи! В макросе переношу данные с одного листа книги в другой - но строки содержат дубликаты, которые необходимо удалить. Но дело в том - что уникальное значение для отлова дубликата появляться только путем склеивания нескольких ячеек пири вставке на лист из массива! Возможно ли отловить эти дуликаты внутри массива - до вставки на лист?Ed_Vard
Опс - да прошу прощения - торопился - забыл пример прицепить Данные беруться с листа "данные" и переносться на лист "Сверка" На листе данные создать уникальные значения не получаеться - т.к. там идет импорт из xml-файлов - и как то непонятно там все делаеться Так вот - нужно удалить дубликаты перед вставкой на лист "сверка" Что-то с памятью совсем что-то стало. Уникальное значение формируеться в столбце А - и именно по этому столбцу нужно выбрать дубликаты и удалить - остави только одно.
Опс - да прошу прощения - торопился - забыл пример прицепить Данные беруться с листа "данные" и переносться на лист "Сверка" На листе данные создать уникальные значения не получаеться - т.к. там идет импорт из xml-файлов - и как то непонятно там все делаеться Так вот - нужно удалить дубликаты перед вставкой на лист "сверка" Что-то с памятью совсем что-то стало. Уникальное значение формируеться в столбце А - и именно по этому столбцу нужно выбрать дубликаты и удалить - остави только одно.Ed_Vard
Добавил удаление дубликатов по 1-му столбцу (у Вас ведь 2007?). Убрал -1 в For i = 1 To UBound(x), т.е. проходим до конца (до верхней границы) массива х. Добавил -1 в With [a5:p5].Resize(i - 1), т.к. последний Next i дает на единицу больше, чем верхняя граница массива х.
Добавил удаление дубликатов по 1-му столбцу (у Вас ведь 2007?). Убрал -1 в For i = 1 To UBound(x), т.е. проходим до конца (до верхней границы) массива х. Добавил -1 в With [a5:p5].Resize(i - 1), т.к. последний Next i дает на единицу больше, чем верхняя граница массива х. nilem
nilem, Спасибо за помощь. Но нет - в связи с тем - что используемый метод импорта xml не поддерживаеться в офисе 2007-2010 - то у меня офис 2003 - в котором данный метод удаления дубликатов не получаеться - я думал над ним! Если Вы откроете мой файл в 2003 офисе - то увидите - что на листе данные выделена граница импортируемых данных - и там в конце присутствует пустая строка - поэтому нужно использовать -1. Нужно что то другое для удаления дубликатов. Я использовал вот такой макрос для удаления дубликатов найденый на планете:
Sub DelRows1() Application.ScreenUpdating = False Dimx, iAsLongx = Range([A5], Cells(Rows.Count, 1).End(xlUp)).ValueFori = 5 To UBound(x) Step 0 'If Application.WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 3))) < 3 Then Rows(i).Delete 'EndIfNextEndSub
Но он слишком медленно работает - у меня порядка 25 000 строк
nilem, Спасибо за помощь. Но нет - в связи с тем - что используемый метод импорта xml не поддерживаеться в офисе 2007-2010 - то у меня офис 2003 - в котором данный метод удаления дубликатов не получаеться - я думал над ним! Если Вы откроете мой файл в 2003 офисе - то увидите - что на листе данные выделена граница импортируемых данных - и там в конце присутствует пустая строка - поэтому нужно использовать -1. Нужно что то другое для удаления дубликатов. Я использовал вот такой макрос для удаления дубликатов найденый на планете:
Sub DelRows1() Application.ScreenUpdating = False Dimx, iAsLongx = Range([A5], Cells(Rows.Count, 1).End(xlUp)).ValueFori = 5 To UBound(x) Step 0 'If Application.WorksheetFunction.CountA(Range(Cells(i, 1), Cells(i, 3))) < 3 Then Rows(i).Delete 'EndIfNextEndSub
Но он слишком медленно работает - у меня порядка 25 000 строк Ed_Vard
Сообщение отредактировал Ed_Vard - Пятница, 29.07.2011, 09:38
Ed_Vard, так у Вас какой офис? и в каком нужно, что б работало?
Я вродебы написал постом выше -
Цитата (Ed_Vard писал(а)):
то у меня офис 2003
И нужно - чтобы работало в 2003 офисе Типа - но не то - то что мне нужно - указано на листе сверка - только мне нужно - чтобы там небыло дубликатов! Этот лист будет использоваться для значений при расчете на другом листе.
Цитата (Michael_S писал(а)):
Ed_Vard, так у Вас какой офис? и в каком нужно, что б работало?
Я вродебы написал постом выше -
Цитата (Ed_Vard писал(а)):
то у меня офис 2003
И нужно - чтобы работало в 2003 офисе Типа - но не то - то что мне нужно - указано на листе сверка - только мне нужно - чтобы там небыло дубликатов! Этот лист будет использоваться для значений при расчете на другом листе.Ed_Vard