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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.12.2017, 21:35   #21
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

За счет следующих изменений:
- раннего связывания;
- использования свойства Range.Value2 вместо Range.Value;
- объявления выходного массива b As Double
удается снизить время выполнения кода с 1,7 до 1,1 с, т.е. на 35%.
Код:
Private Sub CommandButton1_Click()
    Dim i As Long, q As String, a(), b() As Double
    Dim z As Dictionary 'Tools - References - Microsoft Scripting Runtime
Dim t!: t = Timer
    Application.ScreenUpdating = False
    Range("D2:D" & Rows.Count).ClearContents
    Set z = New Dictionary
    a = Range("A2:C" & Cells(Rows.Count, 1).End(xlUp).Row).Value2
    ReDim b(1 To UBound(a, 1), 1 To 1)
    For i = 1 To UBound(a, 1)
        q = a(i, 1) & a(i, 2): z(q) = z(q) + a(i, 3)
    Next
    For i = 1 To UBound(a, 1): b(i, 1) = z(a(i, 1) & a(i, 2)): Next
    [D2].Resize(UBound(b, 1)).Value2 = b
    Application.ScreenUpdating = True
Debug.Print Timer - t
End Sub
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 17.12.2017, 00:01   #22
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Может быть, просто построить сводную со складами и клиентами в строках?
Данные будут сгруппированы по тому полю, которое идет первым. Сейчас в приложенном файле первым идет Склад, поэтому можно увидеть суммы клиентов по каждому складу.
Если в макете таблицы перетащить поле Клиент выше поля Склад, то группировка будет по Клиентам.
И еще к вашим услугам фильтры, итоги, сортировка, сводная диаграмма! Это же все для финансово-логистического анализа придумано.
Вложения
Тип файла: zip prodaji 1.zip (2.21 Мб, 12 просмотров)
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ускорить запрос Kot070 Microsoft Office Access 20 22.06.2016 08:23
помогите ускорить макрос (выборка уникальных по 2-м условиям) kievlyanin Microsoft Office Excel 4 11.12.2014 10:48
как ускорить AlexVI Общие вопросы C/C++ 10 15.07.2014 23:42
Ускорить работу БД SERG1980 БД в Delphi 9 09.11.2010 23:30
Как ускорить макрос в Excel 2003 polomus Microsoft Office Excel 4 04.12.2009 16:25