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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 18.09.2010, 15:06   #1
satten
 
Регистрация: 30.11.2009
Сообщений: 9
По умолчанию удаления строк с повторяющимися элементами

Добрый день!
Помогите пожалуйста. Есть текст с номерами телефонов. Текст может быть любой а номера одинаковые, нужно чтоб макрос искал строки с повторяющимися номерами и удалял все строки кроме одной, которые имеют такой же номер.
Заранее благодарен.
satten вне форума Ответить с цитированием
Старый 18.09.2010, 15:08   #2
satten
 
Регистрация: 30.11.2009
Сообщений: 9
По умолчанию

Вот тут пример.
Вложения
Тип файла: rar пример.rar (7.6 Кб, 18 просмотров)
satten вне форума Ответить с цитированием
Старый 18.09.2010, 17:20   #3
EducatedFool
Программист VBA
СуперМодератор
 
Аватар для EducatedFool
 
Регистрация: 13.07.2008
Сообщений: 6,856
По умолчанию

Код:
Sub RemoveDuplicates()
    Dim cell As Range, ra As Range, coll As New Collection: Application.ScreenUpdating = False
    On Error Resume Next
    For Each cell In Range([b1], Range("b" & Rows.Count).End(xlUp)).Cells
        arr = "": arr = Split(cell.Text, " Т.")
        If UBound(arr) <> 1 Then
            Debug.Print "Не обработана строка " & cell.Row
        Else
            For Each tel In Split(arr(1), ",")
                numb = JustDigits(tel)
                If Len(numb) Then
                    Err.Clear: coll.Add CStr(numb), CStr(numb)
                    If Err Then
                        If ra Is Nothing Then Set ra = cell Else Set ra = Union(ra, cell)
                        Exit For
                    End If
                End If
            Next tel
        End If
    Next cell
    Err.Clear
    MsgBox "Найдено строк-дубликатов: " & ra.Cells.Count, vbInformation
    If Err Then MsgBox "Cтрок-дубликатов не найдено!", vbInformation
    ra.EntireRow.Delete
End Sub

Function JustDigits(ByVal txt) As String
    For i = 1 To Len(txt)
        If Mid(txt, i, 1) Like "#" Then JustDigits = JustDigits & Mid(txt, i, 1)
    Next
End Function
EducatedFool вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Макрос для удаления повторяющихся строк Jelena_bsb Microsoft Office Excel 3 05.08.2010 13:34
Удаление строк с повторяющимися значениями satten Microsoft Office Excel 11 01.12.2009 07:50
работа с повторяющимися значениями в DBGrid-e GhostBZ БД в Delphi 6 01.09.2009 13:44
Удаления дубликатов строк memo AquaKlaster Общие вопросы Delphi 7 20.07.2009 23:46