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

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

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

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

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

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 29.07.2008, 18:37   #1
Serglen
Новичок
Джуниор
 
Регистрация: 29.07.2008
Сообщений: 2
По умолчанию удаление дубликатов и группировка строк

Необходимо удалить дубликаты в каждой из групп (группировать нужно строки между пустыми ячейками), так чтобы из 1.jpg получилось 2.jpg.К сожалению в VBA не силен Заранее спасибо!
Serglen вне форума
Старый 29.07.2008, 19:45   #2
дмидми
Форумчанин
 
Аватар для дмидми
 
Регистрация: 06.03.2008
Сообщений: 352
Лампочка Получите и распишитесь

Вообще-то за готовыми решениями полагается обращаться во Фриланс

При запуске KillDoublesInColumn подвергаемый обработке лист должен быть активен.
Предполагается наличие в каждой группе по крайней мере двух различных значений.
Код:
Option Explicit

Sub KillDoublesInColumn()
    Const START_ADDR = "A1"
    Dim r1 As Range, r2 As Range

    Set r1 = Range(START_ADDR)
    Set r2 = r1.End(xlDown)
    Do While Not IsEmpty(r2) And r1.Row <> r2.Row
        KillDoublesInArea Range(r1, r2)
        Set r1 = r1.End(xlDown).End(xlDown)
        Set r2 = r1.End(xlDown)
    Loop
End Sub

Private Sub KillDoublesInArea(r As Range)
    Dim i As Long, iMax As Long

    r.Sort key1:=r.Cells(1), order1:=xlAscending, Header:=xlNo
    iMax = r.Rows.Count
    For i = iMax To 2 Step -1
        If r.Cells(i, 1) = r.Cells(i - 1, 1) Then
            r.Cells(i, 1).Delete xlShiftUp
            'OR r.Cells(i, 1).EntireRow.Delete
        End If
    Next
End Sub

Последний раз редактировалось дмидми; 29.07.2008 в 19:55.
дмидми вне форума
Старый 30.07.2008, 15:51   #3
Serglen
Новичок
Джуниор
 
Регистрация: 29.07.2008
Сообщений: 2
По умолчанию

После удаления дубликатов заметил, что в другом столбце по группам была итоговая сумма, теперь нужно подумать как сделать автосумму заново (

Последний раз редактировалось Serglen; 30.07.2008 в 16:58.
Serglen вне форума
Закрытая тема


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
удаление строк alexk Microsoft Office Excel 24 15.02.2011 08:34
Импорт и удаление некоторых строк Alex2008 Microsoft Office Excel 3 06.05.2008 18:26
Макрос: удаление строк если в колонке А число 5 Dorvir Microsoft Office Excel 22 15.02.2008 06:25
Запрет на удаление строк и столбцов Shavminator Microsoft Office Excel 2 12.01.2008 13:36
Удаление строк массива по условию Lexakazanskij Паскаль, Turbo Pascal, PascalABC.NET 9 12.09.2007 20:32