<?xml version='1.0' encoding="utf-8"?>
      <rss version='2.0'>
      <channel>
      <title>Форум на Исходниках.RU</title>
      <link>https://forum.sources.ru</link>
      <description>Форум на Исходниках.RU</description>
      <generator>Форум на Исходниках.RU</generator>
  	
      <item>
        <guid isPermaLink='true'>https://forum.sources.ru/index.php?showtopic=93313&amp;view=findpost&amp;p=700806</guid>
        <pubDate>Sat, 30 Apr 2005 16:26:23 +0000</pubDate>
        <title>Работа с циклами</title>
        <link>https://forum.sources.ru/index.php?showtopic=93313&amp;view=findpost&amp;p=700806</link>
        <description><![CDATA[Old Bat: <span class="tag-font" data-value="Arial" style="font-family:Arial"><br>
<strong class='tag-b'>Используйте цикл FOR … NEXT для  обработки массивов</strong><br>
<br>
Несмотря на то, что в данном случае Вам придется указывать верхнюю границу массива  <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">For I = 0 to UBOUND(массив)</div><div class="code_line">&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;</div><div class="code_line">Next</div></ol></div></div></div></div><script>preloadCodeButtons('1');</script><br>
этот код отработает значительно быстрее, чем если бы Вы использовали <br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">FOR EACH X in… &nbsp;</div><div class="code_line">&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;</div><div class="code_line">NEXT</div></ol></div></div></div></div><br>
, извлекая элементы из массива с помощью VARIANT-переменной<br>
<br>
<strong class='tag-b'>Цикл For…Next работает быстрее Do …Loop</strong><br>
<br>
Если заранее известно число итераций, используйте  цикл For…Next<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">For i=1 to n</div><div class="code_line">&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;</div><div class="code_line">Next</div></ol></div></div></div></div><br>
В противном случае Вам придется увеличивать значение счетчика «вручную», что значительно увеличит время выполнения цикла:<br>
<div class='tag-code'><span class='pre_code'></span><div class='code  code_collapsed ' title='Подсветка синтаксиса доступна зарегистрированным участникам Форума.' style=''><div><div><ol type="1"><div class="code_line">Do Until i&#62;n</div><div class="code_line">i = i + 1</div><div class="code_line">&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;&#39;</div><div class="code_line">Loop</div></ol></div></div></div></div><br>
<br>
<strong class='tag-b'><a class='tag-url' href='http://forum.sources.ru/index.php?act=ST&f=184&t=93317' target='_blank'>Используйте цикл FOR EACH X in…  NEXT для  обработки коллекции</a></strong><br>
</span><br>
<br>
<span class='tag-size' data-value='8' style='font-size:8pt;'><span class="tag-color tag-color-named" data-value="gray" style="color: gray">Использованы материалы: &quot;From Access 2002 Desktop Developer&#39;s Handbook&quot;<br>
Litwin, Getz, and Gunderloy. (Sybex, 2001)</span></span>]]></description>
        <author>Old Bat</author>
        <category>Оптимизация VBA-кода</category>
      </item>
	
      </channel>
      </rss>
	