Справедливо, но для небольших объемов.
Уверен, что начиная с некоторого количества просматриваемых данных метод .Find будет обгонять VBA-шный перебор массива в цикле. А если поиск надо вести еще и внутри ячейки (!), то этот предел наступит гораздо быстрее.
Подскажите, плиз, как в коде VBA можно использовать встроенную функцию поиска с листа
Модератор: Naeel Maqsudov
- Naeel Maqsudov
- Сообщения: 2570
- Зарегистрирован: 20 фев 2004, 19:17
- Откуда: Moscow, Russia
- Контактная информация:
У меня нет такой уверенности.
1. А как по-Вашему, реализован метод Find в Excel? Думаю, что если наступает момент, когда Find будет обгонять VBA-шный перебор массива в цикле, то только из-за того, что цикл работы с массивом организован не самым оптимальным образом. В то время, как метод Find по максимуму оптимизирован разработчиками Microsoft.
2. Если поиск надо вести еще и внутри ячейки, то почему это вдруг будет быстрее, чем работать с элементом массива?
1. А как по-Вашему, реализован метод Find в Excel? Думаю, что если наступает момент, когда Find будет обгонять VBA-шный перебор массива в цикле, то только из-за того, что цикл работы с массивом организован не самым оптимальным образом. В то время, как метод Find по максимуму оптимизирован разработчиками Microsoft.
2. Если поиск надо вести еще и внутри ячейки, то почему это вдруг будет быстрее, чем работать с элементом массива?
Я предполагаю, что поскольку метод Find встроен в программу Excel, т.е. скомпилирован на гораздо более быстром языке C, то наверное, может дать фору всем реализованным циклам на VBA, в т.ч. поиску в массиве. Встроенные Excel-функции листа тоже как правило обгоняют аналогичные пользовательские VBA-функции.