Вход


Главная страница >> Учебный процесс >> Конспекты >> MS Office. Руководство программиста по Visual Basic для MS Office 97 >> Опимизация кода >> Основные принципы оптимизации кода >> Mинимизация числа ссылок на OLE-объекты >> Цикл For Each ...Next

Переход на главную страницу

Сервер поддерживается
кафедрой информатики и вычислительной техники ГрГУ
тел. +375-(0)152-445-101
E-mail :
kadan@grsu.grodno.by


[Назад]    [Содержание ]    [Вперед]

  


Цикл For Each ...Next


Перебор элементов набора в цикле For Each...Next осуществляется быстрее, чем в цикле с индексацией. For Each...Next уменьшает размеры макросов, облегчает чтение и отладку кода; кроме того, во многих случаях он просто удобнее.

Так, программа, показанная ниже, работает медленно, потому что в ней на каждой итерации цикла устанавливается объектная переменная thisRow:

Set r = Worksheets(1).Range("a1:a200")
For i = 1 To r.Rows .Count
═════Set thisRow = r.Rows(i)
═════If thisRow. Cells(1, 1).Value < 0 Then
══════════thisRow. Font. Color = RGB(255, 0, 0)
═════End If
Next

А этот вариант ? в сравнении с предыдущим ? и быстрее, и компактнее:

For Each thisRow In Worksheets(1).Range( "at :a200") .Rows
═════If thisRow. Cells(1, 1). Value < 0 Then
══════════thisRow. Font. Color = RGB(255, 0, 0)
═════End If
Next



[Назад]    [Содержание ]    [Вперед]

  



Текст пособия подготовлен на основе материалов книги
Microsoft Corporation. Руководство программиста по Visual Basic для Microsoft Office 97 / Пер. с англ. - М.: Издательский отдел "Русская Редакция" ТОО "Channel Trading Ltd.", 1997. - 544 с.: илл.
c Оригинальное издание на английском языке,
Microsoft Corporation, 1997
c Русский перевод,
Microsoft Corporation, 1997

  
За содержание страницы отвечает Гончарова М.Н.
©
Кафедра СПиКБ, 2002-2017