Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Оптимизация скорости выборки в массивах - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимизация скорости выборки в массивах (Макросы/Sub)
Оптимизация скорости выборки в массивах
Lob1AV Дата: Четверг, 09.07.2015, 09:39 | Сообщение № 1
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Здравствуйте!
Есть 2 массива:
- в первом, к примеру, содержится следующая информация: "Артикул", "Фамилия", "Имя", "Отчество", "Год рождения", "Месяц рождения", "День рождения";
- во втором, к примеру, содержится: "Артикул" и "Зарплата".
Задача сопоставить эти артикулы между собой.
Выполняю переборкой массивов:

[vba]
Код
For i = 0 To UBound(Card) - 1
       For k = 0 To UBound(Finance) - 1
           If Card(i).Article = Finance(k).Article Then
               'Артикул найден!
               ' ...
               Exit For
           End If
       Next
Next
[/vba]

Если размерность массивов большая, то процесс переборки занимает довольно продолжительное время.
Может есть какой-либо способ ещё ускорить его?

Т.к. размер файла превышает разрешённый на форуме, то линк для скачивания: удален администрацией

P.S.
Прогресс-бар и прочие "излишества" можно не учитывать - это для удобства.


Люблю жену и дочек, люблю на свете жить
Люблю менять всё в жизни, что лучше может быть!


Сообщение отредактировал _Boroda_ - Четверг, 09.07.2015, 10:16
 
Ответить
СообщениеЗдравствуйте!
Есть 2 массива:
- в первом, к примеру, содержится следующая информация: "Артикул", "Фамилия", "Имя", "Отчество", "Год рождения", "Месяц рождения", "День рождения";
- во втором, к примеру, содержится: "Артикул" и "Зарплата".
Задача сопоставить эти артикулы между собой.
Выполняю переборкой массивов:

[vba]
Код
For i = 0 To UBound(Card) - 1
       For k = 0 To UBound(Finance) - 1
           If Card(i).Article = Finance(k).Article Then
               'Артикул найден!
               ' ...
               Exit For
           End If
       Next
Next
[/vba]

Если размерность массивов большая, то процесс переборки занимает довольно продолжительное время.
Может есть какой-либо способ ещё ускорить его?

Т.к. размер файла превышает разрешённый на форуме, то линк для скачивания: удален администрацией

P.S.
Прогресс-бар и прочие "излишества" можно не учитывать - это для удобства.

Автор - Lob1AV
Дата добавления - 09.07.2015 в 09:39
RAN Дата: Четверг, 09.07.2015, 10:02 | Сообщение № 2
Группа: Друзья
Ранг: Экселист
Сообщений: 5660
Репутация: 1163 ±
Замечаний: 0% ±

2010
Используйте словарь
[p.s.]Линк для скачивания - нарушение правил форума[/p.s.]


Быть или не быть, вот в чем загвоздка!
 
Ответить
СообщениеИспользуйте словарь
[p.s.]Линк для скачивания - нарушение правил форума[/p.s.]

Автор - RAN
Дата добавления - 09.07.2015 в 10:02
ikki Дата: Четверг, 09.07.2015, 10:16 | Сообщение № 3
Группа: Друзья
Ранг: Старожил
Сообщений: 1906
Репутация: 504 ±
Замечаний: 0% ±

Excel 2003, 2010
ответил на планете
http://www.planetaexcel.ru/forum....e567412


помощь по Excel и VBA
ikki@fxmail.ru, icq 592842413, skype alex.ikki
 
Ответить
Сообщениеответил на планете
http://www.planetaexcel.ru/forum....e567412

Автор - ikki
Дата добавления - 09.07.2015 в 10:16
Lob1AV Дата: Четверг, 09.07.2015, 11:55 | Сообщение № 4
Группа: Пользователи
Ранг: Прохожий
Сообщений: 2
Репутация: 0 ±
Замечаний: 0% ±

Excel 2007
Ответили на форуме http://planetaexcel.ru/forum....ssivakh
Всем спасибо.
Линк на пример: https://yadi.sk/i/_Mud4BQhhkzZb
[moder]Здесь удалять ссылку на пример не буду - вопрос уже решен.
А тему закрываю.


Люблю жену и дочек, люблю на свете жить
Люблю менять всё в жизни, что лучше может быть!


Сообщение отредактировал _Boroda_ - Четверг, 09.07.2015, 11:57
 
Ответить
СообщениеОтветили на форуме http://planetaexcel.ru/forum....ssivakh
Всем спасибо.
Линк на пример: https://yadi.sk/i/_Mud4BQhhkzZb
[moder]Здесь удалять ссылку на пример не буду - вопрос уже решен.
А тему закрываю.

Автор - Lob1AV
Дата добавления - 09.07.2015 в 11:55
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Оптимизация скорости выборки в массивах (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!