Подскажите, плиз, как в коде VBA можно использовать встроенную функцию поиска с листа

Весь MS Office, программирование на Visual Basic for Applications и MS VB

Модератор: Naeel Maqsudov

Аватара пользователя
Naeel Maqsudov
Сообщения: 2570
Зарегистрирован: 20 фев 2004, 19:17
Откуда: Moscow, Russia
Контактная информация:

Справедливо, но для небольших объемов.
Уверен, что начиная с некоторого количества просматриваемых данных метод .Find будет обгонять VBA-шный перебор массива в цикле. А если поиск надо вести еще и внутри ячейки (!), то этот предел наступит гораздо быстрее.
SAS888
Сообщения: 156
Зарегистрирован: 16 янв 2008, 08:28

У меня нет такой уверенности.
1. А как по-Вашему, реализован метод Find в Excel? Думаю, что если наступает момент, когда Find будет обгонять VBA-шный перебор массива в цикле, то только из-за того, что цикл работы с массивом организован не самым оптимальным образом. В то время, как метод Find по максимуму оптимизирован разработчиками Microsoft.
2. Если поиск надо вести еще и внутри ячейки, то почему это вдруг будет быстрее, чем работать с элементом массива?
Аватара пользователя
AlexZZZ
Сообщения: 237
Зарегистрирован: 01 июн 2007, 00:27
Откуда: Москва и область

Я предполагаю, что поскольку метод Find встроен в программу Excel, т.е. скомпилирован на гораздо более быстром языке C, то наверное, может дать фору всем реализованным циклам на VBA, в т.ч. поиску в массиве. Встроенные Excel-функции листа тоже как правило обгоняют аналогичные пользовательские VBA-функции.
Ответить