|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
23.05.2008, 21:52 | #1 |
Пользователь
Регистрация: 24.11.2007
Сообщений: 12
|
Откуда тормоза (.Find(What:=MyInput, LookIn:=xlValues, LookAt:=xlWhole))
Есть два файла, 1й на 17,5 тыс. строк, 2й на 48 тыс. строк.
Так вот указанная конструкция (.Find(What:=MyInput, LookIn:=xlValues, LookAt:=xlWhole)) во втором случае работает в 2 раза быстрее чем в первом. Вопрос: Где грабли? Заранее спасибо. |
23.05.2008, 22:40 | #2 |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
возможно в 1 файле у Вас форматы ячеек установлены для столбцов, т.е. для всего листа, а во 2-м только для имеющихся записей, вот find и отрабатывает их все, в том числе и пустые ячейки.
|
23.05.2008, 22:50 | #3 |
Пользователь
Регистрация: 24.11.2007
Сообщений: 12
|
With Worksheets("Свод").Range("B4:B65536 ") проставлено в обоих модулях.
|
23.05.2008, 23:01 | #4 |
Пользователь
Регистрация: 24.11.2007
Сообщений: 12
|
P.S. метод "тупого" перебора в 1ом на 17,5 тыс работает раза в три быстрее чем ".find"
|
23.05.2008, 23:02 | #5 |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
|
23.05.2008, 23:04 | #6 |
Форумчанин
Регистрация: 26.04.2008
Сообщений: 487
|
|
23.05.2008, 23:11 | #7 |
Пользователь
Регистрация: 24.11.2007
Сообщений: 12
|
1й - 7Mb
2й - 56Mb В этом и прикол на 7ми метрах 17т. записей ищет гораздо тупее, чем на 56 при 48т. записей. А перебором в 7ми метрах работает быстрее, чем ".find", вот я и задался вопросом Почему. |
24.05.2008, 00:57 | #8 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
Попробуйте заменить
Код:
Код:
У меня это быстрее работает через Ctrl+F |
24.05.2008, 02:16 | #9 |
Пользователь
Регистрация: 24.11.2007
Сообщений: 12
|
Прошу прощения за бестолковость, но мне кажется, что xlFormulas это фрмула, а я точно знаю, что в искомой ячейке - значение. Хотя СОГЛАСНО ВАШИХ ответов ВРОДЕ все работает на ура. Дальше буду смотреь. Еще раз спасибо за помощь
|
24.05.2008, 04:00 | #10 |
Форумчанин
Регистрация: 21.08.2007
Сообщений: 292
|
Я понимаю/догадываюсь, что в вашей ячейке значение, а не формула. Но я каждый день работаю с большими файлами/таблицами (до 100мб) и часто пользуюсь поиском по листу (Ctrl+F), и я заметил, что если в параметрах стоит "Область поиска - формулы", то поиск осуществляется быстрее, чем "Область поиска - значения". Отсюда и был мой совет вам.
Последний раз редактировалось Pavel55; 24.05.2008 в 04:02. |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Макрос, расширяющий функцию Find | neugadal | Microsoft Office Word | 5 | 29.09.2008 08:32 |
help! тормоза с DataTable?! | billidean | Общие вопросы .NET | 2 | 24.08.2008 13:16 |
Тормоза винды | Altera | Операционные системы общие вопросы | 4 | 08.07.2008 18:23 |
19 форм = сильные тормоза | XPAiN | Общие вопросы Delphi | 21 | 29.12.2007 10:47 |
тормоза Tmemo | russkiy | Компоненты Delphi | 13 | 28.12.2007 16:14 |