VBA, удалить повторяющиеся строки #424152


#0 by Asdef
Есть лист Икселя, в нем допустим некоторые строки какого-то столца повторяются, как их удалить не подскажете?
#1 by Asdef
зы, т.е. нужно оставить одну строку, а все другие, которые с ней совпадают, нужно удалить
#2 by skunk
думаю, через фильтр будет проще всего
#3 by Asdef
а подробнее ?
#4 by Asdef
такс, тут чот не так, 3 первые строки не считаются.... Sub DeleteDubls Const intDataCol = 1 Const intStartRow = 2    Dim i%, j%, intMaxRow%    Dim strValue1$, strValue2$    intMaxRow = 22    i = intStartRow    Do While i < intMaxRow        strValue1 = Trim(Cells(i, intDataCol))        For j = i + 1 To intMaxRow            strValue2 = Trim(Cells(j, intDataCol))            If StrComp(strValue1, strValue2, vbTextCompare) = 0 Then                Cells(j, intDataCol).EntireRow.Delete                intMaxRow = intMaxRow - 1                i = i - 1                If i < intStartRow Then i = intStartRow            End If        Next        i = i + 1    Loop End Sub
#5 by skunk
чет и половины не понял, чего ты написал... тебе обязательно надо имено удалить... или можно создать на другом где уже повторяющихся строк не будет
#6 by Asdef
да, удалить )) т.е. если было так: Саша Саша Саша Саша Маша Маша То после обработки листа должно получится так: Саша Маша
#7 by kitt
подключись по оле к 1с, зафигачь в ТЗ и сверни )
#8 by Asdef
дык, чего мне извращаться? а мож код готовый дашь ;)
#9 by Rie
Где-то так: i = intStartCol Val1 = Tirm(Cells(i,intDataCol).Value) i=i+1 Do While i<intMaxRow    Val2 = Trim(Cells(i,intDataCol).Value)    If Val1=Val2 Then        Rows(i).Delete        intMaxRow = intMaxRow-1        Val = Trim(Cells(i,intDataCol).Value)    Else        Val1 = Val2        i = i+1    Rnd If End Do
#10 by Rie
+ Только проверь насчёт ошибок "+/-1"
#11 by Rie
+ "Val=Trim" - конечно же, "Val1=Trim"
#12 by Rie
+ Точно, ещё не проснулся :-) Val2=Trim
#13 by Asdef
чот не пашет intStartCol, intMaxRow - чего такое?
#14 by Ковычки
а сортировка не канает ?
#15 by Asdef
не, сортировка не нужна, лучше без оной
#16 by rcs
Сводная таблица не катит?
#17 by Asdef
а чего такое?
#18 by Rie
Это у тебя из Если без предварительной сортировки - тады ой. не прокатит. Но в у тебя вроде как после сортировки пример приведен. А что именно "не так" у тебя в ? Как именно не работает?
#19 by Asdef
спасиб, уже разобрался )
#20 by rcs
Добавляешь заголовок: Имя Саша Саша Саша Саша Маша Маша затем запускаешь визард "Данные->Сводная таблица", помещаешь элемент "Имя" в поля строк.
#21 by Asdef
а, понятно )))
#22 by PowerBoy
Range("A2:A4").AdvancedFilter Action:=xlFilterInPlace, Unique:=True
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С