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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.04.2013, 16:00   #11
bugx
Новичок
Джуниор
 
Регистрация: 15.04.2013
Сообщений: 7
По умолчанию

На всякий случай размещаю файлик результата работы, может у кого будут подобные вопросы.
Вложения
Тип файла: zip Сортировка.zip (21.9 Кб, 11 просмотров)
bugx вне форума Ответить с цитированием
Старый 17.04.2013, 00:58   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,166
По умолчанию

Я обычно делаю так:
Код:
Sub tt()
    Dim a(), i&, ii&, t$
    a = Sheets(1).[a1].CurrentRegion.Value
    ReDim b(1 To UBound(a), 1 To 3)
    With CreateObject("scripting.dictionary")
        .comparemode = 1
        For i = 1 To UBound(a)
            t = a(i, 1) & "|" & a(i, 2)
            If Not .exists(t) Then
                ii = ii + 1
                b(ii, 1) = a(i, 1): b(ii, 2) = a(i, 2): b(ii, 3) = a(i, 3)
                .Item(t) = ii
            Else
                b(.Item(t), 3) = b(.Item(t), 3) + a(i, 3)
            End If
        Next
    End With

    If ii > 0 Then Sheets(2).[e1].Resize(ii, 3) = b
End Sub
Всё прозрачно - массив, массив, словарь
Выгрузка для сравнения чуть правее.
Думаю на большом объёме будет быстрее.

P.S. В данном случае "If ii > 0 Then" лишнее, воткнул по привычке... Но в других вариантах бывает, что ничего не отобрано - тогда при выгрузке будет ошибка...
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 17.04.2013 в 01:04.
Hugo121 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сортировка расческой,перепишите с С++ на VBA DeadGod Помощь студентам 0 04.12.2012 17:03
Сортировка с помощью VBA Lyubov1990 Microsoft Office Excel 11 22.11.2011 20:06
vba сортировка массива Aion Microsoft Office Access 2 01.06.2011 12:14
VBA сортировка одномерного массива MIKE11IPME Помощь студентам 1 17.04.2011 20:58
VBA Сортировка 2007 vs. 2003 Acro Microsoft Office Excel 0 10.05.2009 23:58