Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум на Исходниках.RU > Оптимизация VBA-кода > Работа с циклами


Автор: Old Bat 30.04.05, 16:26

Используйте цикл FOR … NEXT для обработки массивов

Несмотря на то, что в данном случае Вам придется указывать верхнюю границу массива
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    For I = 0 to UBOUND(массив)
    ''''''''''''''''''''''
    Next

этот код отработает значительно быстрее, чем если бы Вы использовали
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    FOR EACH X in…  
    ''''''''''''''''''''''
    NEXT

, извлекая элементы из массива с помощью VARIANT-переменной

Цикл For…Next работает быстрее Do …Loop

Если заранее известно число итераций, используйте цикл For…Next
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    For i=1 to n
    ''''''''''''
    Next

В противном случае Вам придется увеличивать значение счетчика «вручную», что значительно увеличит время выполнения цикла:
<{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}>
    Do Until i>n
    i = i + 1
    ''''''''''''
    Loop


Используйте цикл FOR EACH X in… NEXT для обработки коллекции


Использованы материалы: "From Access 2002 Desktop Developer's Handbook"
Litwin, Getz, and Gunderloy. (Sybex, 2001)

Powered by Invision Power Board (https://www.invisionboard.com)
© Invision Power Services (https://www.invisionpower.com)