HTML, Excel, Word, SEOÎñíîâû VBA ⇒ Ìàññèâû 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

Ðåéòèíã vps ñåðâåðîâ Êàíàäå çäåñü  

Ìàññèâû VBA (÷.3)


Ôóíêöèè LBound, UBound

Ôóíêöèè LBound, UBound âîçâðàùàþò íèæíåå è âåðõíåå ãðàíè÷íûå çíà÷åíèÿ èíäåêñîâ ñòàòè÷åñêîãî èëè äèíàìè÷åñêîãî ìàññèâà.


Ñèíòàêñèñ:

LBound (array_Name [, dimension])
UBound (array_Name [, dimension])

array_Name - èìÿ ìàññèâà
dimension - öåëîå ÷èñëî (íåîáÿçàòåëüíûé àðãóìåíò). Îïðåäåëÿåò èçìåðåíèå ìàññèâà, äëÿ êîòîðîãî íàäî ïîëó÷èòü âåðõíèé èëè íèæíèé ïðåäåë. Ïðè îòñóòñòâèè dimension âîçâðàùàåòñÿ ïðåäåë äëÿ ïåðâîãî èçìåðåíèÿ ìàññèâà.

Íèæåïðèâåäåííûé ëèñòèíã äåìîíñòðèðóåò èñïîëüçîâàíèå ôóíêöèé LBound, UBound:



Î÷èñòêà è óäàëåíèå ìàññèâîâ ïðè ïîìîùè Erase

Îïåðàòîð Erase ïîçâîëÿåò âûïîëíÿòü î÷èñòêó äëÿ ñòàòè÷åñêèõ ìàññèâîâ è óäàëåíèå - äëÿ äèíàìè÷åñêèõ.

Êîãäà ýëåìåíòû ìàññèâà çàïîëíåíû, äàííûå â ìàññèâå îñòàþòñÿ äî òåõ ïîð, ïîêà ïîëüçîâàòåëü íå ïðèñâîèò íîâûå çíà÷åíèÿ ýëåìåíòàì ìàññèâà èëè ïîêà VBA íå îñâîáîäèòñÿ îò ìàññèâà. Çà÷àñòóþ áûâàåò, ÷òî â äàëüíåéøèõ âû÷èñëåíèÿõ äèíàìè÷åñêèé ìàññèâ íè ïðè êàêèõ îáñòîÿòåëüñòâàõ èñïîëüçîâàòüñÿ íå áóäåò, ïîýòîìó íåöåëåñîîáðàçíî "äåðæàòü" åãî â ïàìÿòè êîìïüþòåðà, ò.ê. ýòî ìîæåò ñêàçàòüñÿ íà ñêîðîñòè ðàáîòû ïðîãðàììû. Èëè æå ìîæåò ïîíàäîáèòüñÿ î÷èñòèòü âñå çíà÷åíèÿ â ñòàòè÷åñêîì ìàññèâå, óñòàíàâëèâàÿ ÷èñëîâûå çíà÷åíèÿ íà 0, à ñòðîêîâûå - íà ïóñòûå ñòðîêè. Ýòî ìîæíî îñóùåñòâèòü ïðè ïîìîùè âëîæåííûõ öèêëîâ - êàê áûëî ïîêàçàíî íà ïðåäûäóùåì óðîêå. Íî, ìîæíî ñäåëàòü ãîðàçäî ïðîùå:


Erase My_Array


Äàííûé îïåðàòîð îáíóëÿåò (åñëè ìàññèâ ñòàòè÷åñêèé) èëè î÷èùàåò (åñëè ìàññèâ äèíàìè÷åñêèé) ìàññèâ My_Array.

Îïåðàòîð Erase óäàëÿåò èç ïàìÿòè äèíàìè÷åñêèå ìàññèâû, îñâîáîæäàÿ îáëàñòü ïàìÿòè, ðàíåå èñïîëüçóåìóþ ýòèì ìàññèâîì. Ïðè óäàëåíèè äèíàìè÷åñêîãî ìàññèâà ñ ïîìîùüþ îïåðàòîðà Erase íåîáõîäèìî ïîâòîðíî ñîçäàòü ìàññèâ ñ ïîìîùüþ îïåðàòîðà ReDim ïåðåä òåì, êàê ìîæíî áóäåò èñïîëüçîâàòü ýòîò îïðåäåëåííûé äèíàìè÷åñêèé ìàññèâ ñíîâà.

Ïîâåäåíèå îïåðàòîðà Erase äëÿ ñòàòè÷åñêèõ ìàññèâîâ çàâèñèò îò êîíêðåòíîãî òèïà ýëåìåíòîâ ìàññèâà (ñì. òàáëèöó):


Òèï ñòàòè÷åñêîãî ìàññèâà Äåéñòâèå îïåðàòîðà Erase
Ëþáîé ÷èñëîâîé òèï Óñòàíàâëèâàåò ýëåìåíòû ìàññèâà íà 0
Ëþáîé ñòðîêîâûé òèï Óñòàíàâëèâàåò ýëåìåíòû ìàññèâà íà ñòðîêó íóëåâîé äëèíû, à äëÿ ñòðîê ôèêñèðîâàííîé äëèíû - êàê âñå ñèìâîëû ïðîáåëà
Òèï Variant Óñòàíàâëèâàåò ýëåìåíòû ìàññèâà íà Empty
Òèï Object Óñòàíàâëèâàåò ýëåìåíòû ìàññèâà íà Nothing
Ëþáîé ïîëüçîâàòåëüñêèé òèï Óñòàíàâëèâàåò êàæäóþ ïåðåìåííóþ â ïîëüçîâàòåëüñêîì òèïå èíäèâèäóàëüíî: ÷èñëåííûå - íà 0; ñòðîêîâûå - íà ñòðîêè íóëåâîé äëèíû; Variant - Empty; Object - Nothing



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



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