excel: удалить дубликаты строк в выделенном фрагменте

psilocybe

друзья, наверняка кто-то прекрасно прогает(?) скрипты для excel
помогите решить задачу сабжа

что я делаю сейчас: выделяю фрагмент, упорядочиваю по алфавиту и выделяю "нужные" строки, чтобы удалить.
в идеале хочется иметь скрипт, который либо выделяет дубликаты во фрагменте, либо удаляет дубликаты (можно просто — очищает содержимое ячеек). т.е., если посмотреть на картинку — там должна пропасть одна строка "белый шарф"
мне кажется, что это малюсенький скрипт, для знающего человека. кто-нить поможет? )

nik93

Сообщение удалил

nik93

Написал то что тебе надо.
Ставишь кнопку на форму и в событие нажатия ставишь DeleteDuplicates Selection
Private Sub CommandButton1_Click
DeleteDuplicates Selection
End Sub

Public Sub DeleteDuplicates(target As Range)
Dim strngs As String
Dim h As Range
Dim r As Range
If target.Columns.count > 1 Then Exit Sub
For Each r In target.Rows
If r.Cells(1, 1) <> "" Then
Set h = target.Columns(1).Find(r.Cells(1, 1 LookIn:=xlValues, LookAt:=xlWhole, MatchCase:=False)
If Not h Is Nothing Then
fadress = r.Cells(1, 1).Address
Do
If h.Address <> fadress Then
h.Cells(1, 1) = ""
Else
Exit Do
End If
Set h = target.Columns(1).FindNext(h)
Loop While (Not h Is Nothing)
End If
End If
Next
End Sub

danilov

После сортировки растягиваешь формулу на следующий стобец: Если значение ячейки слева равно следующей за ней по вертикали, то "", иначе - её значение.
В этом стоолбце будет, то, что тебе нужно. Это менее гибко и удобно, чем через VB-макрос, зато быстро.

Mixaz

2007 умеет сам удалять дубликаты
Оставить комментарий
Имя или ник:
Комментарий: