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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 26.08.2014, 11:12   #1
kikim
 
Регистрация: 29.11.2009
Сообщений: 8
По умолчанию Оптимизация кода. Тупит при сложном условии.

Тупит при сложном условии Система+ARP+KT (сначала фильтрует без ARP и копирует в отдельный лист, потом без КТ тоже в отдельный лист, а потом формирует общую таблицу). Тупизна возникает при выборе значения УГП = Е, если другое значение поставить, то все ок.
Как сделать так, чтобы не тупил?
Изображения
Тип файла: jpg 222222.jpg (61.0 Кб, 84 просмотров)
Вложения
Тип файла: rar outdocs.rar (99.9 Кб, 15 просмотров)
kikim вне форума Ответить с цитированием
Старый 26.08.2014, 12:13   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

тормозит процедура Merges3

вот здесь:
Код:
Worksheets("1").Activate
Set rA = Range(Range("A2"), Range("A2").End(xlDown))
Worksheets("2").Activate
Set rB = Range(Range("A2"), Range("A2").End(xlDown))
когда на листах пусто - в rA и rB попадает по 1 млн. пустых ячеек, а потом каждую из них Вы пытаетесь впихнуть в коллекцию, понятно - в коллекцию они не попадают но 2 млн. ячеек по-очереди проверяются на непригодность внесения в коллекцию
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.08.2014, 12:50   #3
kikim
 
Регистрация: 29.11.2009
Сообщений: 8
По умолчанию

IgorGO, можете подсказать лучшее решение этой проблемы?
kikim вне форума Ответить с цитированием
Старый 26.08.2014, 13:06   #4
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Код:
  Set ra = [a2]
  If Not IsEmpty(ra.Offset(1, 0)) Then Set ra = ra.Resize(ra.End(xlDown).Row - 1, 1)
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума Ответить с цитированием
Старый 26.08.2014, 14:00   #5
kikim
 
Регистрация: 29.11.2009
Сообщений: 8
По умолчанию

Все равно, при УГП = Е тупит(
kikim вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Оптимизация кода (C++) Кирилл Романов Помощь студентам 0 30.10.2013 23:36
Оптимизация кода HDMI PHP 16 22.10.2012 13:06
Оптимизация кода LatuSerge Общие вопросы Delphi 10 27.12.2011 01:51
Оптимизация кода viscas PHP 3 31.05.2009 16:04
Оптимизация кода nusik Общие вопросы Delphi 2 21.05.2009 17:55