HTML, Excel, Word, SEOÎñíîâû VBA ⇒ Êîìàíäû îðãàíèçàöèè öèêëîâ

Îñíîâû VBA

Ñàìîó÷èòåëü vba: Òåîðèÿ
..Ïåðâûé ìàêðîñ â Word
..Ýòàïû çàïèñè ìàêðîñà
..Çàïèñü ìàêðîñà â Word
..Çàïèñü ìàêðîñà â Excel
..Êîä ìàêðîñà
..Âûïîëíåíèå ìàêðîñà
..Òèïû äàííûõ VBA
..Ïåðåìåííûå VBA
..Êîíñòàíòû VBA
..Ñîâìåñòèìîñòü òèïîâ äàííûõ
..Àðèôìåòè÷åñêèå îïåðàòîðû
..Ëîãè÷åñêèå îïåðàòîðû
..Ñòðîêîâûå îïåðàòîðû
..Ôóíêöèè VBA ÷.1
..Ôóíêöèè VBA ÷.2
..Ïðèìåðû èñïîëüçîâàíèÿ ôóíêöèé
..Ôóíêöèè host-ïðèëîæåíèé
..Ôóíêöèè-ïðîöåäóðû
..Ïîëüçîâàòåëüñêèå ôóíêöèè â Excel
..Îïåðàòîðû âåòâëåíèÿ: ïðîñòîé âûáîð
..Îïåðàòîðû âåòâëåíèÿ: ñëîæíûé âûáîð
..Èñïîëüçîâàíèå MsgBox
..Ïðåðûâàíèå ïðîöåäóð è ôóíêöèé
..Íåîáÿçàòåëüíûå àðãóìåíòû ôóíêöèé
..Öèêëû VBA ÷.1
..Öèêëû ÷.2
..Öèêëû ÷.3
..Ìàññèâû VBA ÷.1
..Ìàññèâû ÷.2
..Ìàññèâû ÷.3
..Óïðàâëåíèå ôàéëàìè ñ ïîìîùüþ VBA
Ñàìîó÷èòåëü vba: Ïðàêòèêà
Èãðà: Öåïíàÿ ðåàêöèÿ
Ïðèëîæåíèÿ
..Ñóììàòîð
..Íàêëåéêè
..Âîñüìåðêà
..Ìåíåäæåð ïî÷òû
Íàäñòðîéêè
..DEF
..SortSheets
..HideSheet

 

Öèêëû VBA (÷.1). Êîìàíäû îðãàíèçàöèè öèêëîâ


Êàêèå ëèáî äåéñòâèÿ ïðîöåäóðû ïîâòîðÿþùèåñÿ çàäàííîå êîëè÷åñòâî ðàç èëè ïîêà âûïîëíÿåòñÿ èëè íå âûïîëíÿåòñÿ íåêîòîðîå óñëîâèå íàçûâàþò öèêëîì.

Ïðîöåññ âûïîëíåíèÿ âñå îïåðàòîðîâ, çàêëþ÷åííûõ â ñòðóêòóðó öèêëà, îäèí ðàç íàçûâàåòñÿ èòåðàöèåé öèêëà.

Ñòðóêòóðû öèêëà, âñåãäà âûïîëíÿþùèåñÿ çàäàííîå êîëè÷åñòâî ðàç, íàçûâàþòñÿ öèêëàìè ñ ôèêñèðîâàííûì ÷èñëîì èòåðàöèé. Äðóãèå òèïû ñòðóêòóð öèêëà ïîâòîðÿþòñÿ ïåðåìåííîå êîëè÷åñòâî ðàç â çàâèñèìîñòè îò íåêîòîðîãî íàáîðà óñëîâèé. Òàêèå öèêëû íàçûâàþòñÿ íåîïðåäåëåííûìè öèêëàìè.

Áëîê îïåðàòîðîâ, íàõîäÿùèéñÿ ìåæäó íà÷àëîì è êîíöîì öèêëà íàçûâàåòñÿ "òåëî öèêëà".

Ñàìîé ïðîñòîé ñòðóêòóðîé öèêëà ÿâëÿåòñÿ ôèêñèðîâàííûé öèêë.

Öèêë For..Next

Ñèíòàêñèñ


For counter = Start To End [Step StepSize]
  Statements
Next [counter]


Counter - ëþáàÿ ÷èñëåííàÿ ïåðåìåííàÿ VBA
Start - ëþáîå ÷èñëåííîå âûðàæåíèå , îïðåäåëÿåò íà÷àëüíîå çíà÷åíèå äëÿ ïåðåìåííîé counter
End - ÷èñëåííîå âûðàæåíèå, îïðåäåëÿåò êîíå÷íîå çíà÷åíèå äëÿ ïåðåìåííîé counter
Statements - îäèí, íåñêîëüêî èëè íè îäíîãî îïåðàòîðà VBA (òåëî öèêëà).


Ïî óìîë÷àíèþ VBA óâåëè÷èâàåò ïåðåìåííóþ counter íà 1 êàæäûé ðàç ïðè âûïîëíåíèè îïåðàòîðîâ â öèêëå. Ìîæíî çàäàòü äðóãîå çíà÷åíèå (SterSize - ëþáîå ÷èñëåííîå âûðàæåíèå), íà êîòîðîå áóäåò èçìåíÿòüñÿ counter.

Êëþ÷åâîå ñëîâî Next ñîîáùàåò VBA î òîì, ÷òî äîñòèãíóò êîíåö öèêëà. Íåîáÿçàòåëüíàÿ ïåðåìåííàÿ counter ïîñëå êëþ÷åâîãî ñëîâà Next äîëæíà áûòü òîé æå ñàìîé ïåðåìåííîé counter, êîòîðàÿ áûëà çàäàíà ïîñëå êëþ÷åâîãî ñëîâà For â íà÷àëå ñòðóêòóðû öèêëà.


Íèæå ïðåäñòàâëåí ëèñòèíã ïðîñòåéøåãî öèêëà For..Next, êîòîðûé ñ÷èòàåò ñóììó öèôð îò 1 äî 10:



À òåïåðü äâà âàðèàíòà öèêëà For..Next ñ èñïîëüçîâàíèåì øàãà öèêëà îòëè÷íîãî îò åäèíèöû:



Îáðàòèòå âíèìàíèå! Ïðè óìåíüøåíèè ñ÷åò÷èêà öèêëà For..Next öèêë âûïîëíÿåòñÿ, ïîêà ïåðåìåííàÿ ñ÷åò÷èêà áîëüøå èëè ðàâíà êîíå÷íîìó çíà÷åíèþ, à êîãäà ñ÷åò÷èê öèêëà óâåëè÷èâàåòñÿ, öèêë âûïîëíÿåòñÿ, ïîêà ïåðåìåííàÿ ñ÷åò÷èêà ìåíüøå èëè ðàâíà êîíå÷íîìó çíà÷åíèþ.

Öèêë For Each..Next

Öèêë For Each..Next íå èñïîëüçóåò ñ÷åò÷èê öèëêà. Öèêëû For Each..Next âûïîëíÿþòñÿ ñòîëüêî ðàç, ñêîëüêî èìååòñÿ ýëåìåíòîâ â îïðåäåëåííîé ãðóïïå, òàêîé êàê êîëëåêöèÿ îáúåêòîâ èëè ìàññèâ (êîòîðûå áóäóò ðàññìàòðèâàòüñÿ ïîçæå). Ïðîùå ãîâîðÿ, öèêë For Each..Next âûïîëíÿåòñÿ îäèí ðàç äëÿ êàæäîãî ýëåìåíòà â ãðóïïå.

Ñèíòàêñèñ


For Each Element In Group
  Statements
Next [Element]


Element - ïåðåìåííàÿ, èñïîëüçóåìàÿ äëÿ èòåðàöèè ïî âñåì ýëåìåíòàì â îïðåäåëåííîé ãðóïïå
Group - ýòî îáúåêò êîëëåêöèè èëè ìàññèâ
Statements - îäèí, íåñêîëüêî èëè íè îäíîãî îïåðàòîðà VBA (òåëî öèêëà).


Öèêë For Each..Next âñåãäà âûïîëíÿåòñÿ ñòîëüêî ðàç, ñêîëüêî èìååòñÿ ýëåìåíòîâ â îïðåäåëåííîé ãðóïïå.

 íèæåïðèâåäåííîì ëèñòèíãå ïîêàçàíà ôóíêöèÿ SheetExists, èñïîëüçóþùàÿ öèêë For Each..Next äëÿ îïðåäåëåíèÿ òîãî, ñóùåñòâóåò ëè îïðåäåëåííûé ëèñò â ðàáî÷åé êíèãå Excel:






 íà÷àëî ñòðàíèöû



 íà÷àëî ñòðàíèöû