VBA масив от обекти

Съдържание

Този урок ще покаже как да създавате и използвате масиви от обекти във VBA.

Във VBA масивите са променливи, които съхраняват множество стойности. Можете да съхранявате VBA обекти в масиви по същия начин, както бихте съхранили всички други данни.

Деклариране на обектния масив

В този пример ще декларираме масив от VBA работни листове:

1 Dim arWks (3) Като работен лист

Попълване на масив от статични обекти

Обявете обектния масив за статичен и след това можете да попълните масива с листа, които сте избрали от работната си книга.

12345678 Sub TestObjArray ()'дефинирайте масива като масив от работен листЗатъмнете arWks (1 до 3) като работен лист„добавете 3 листа в масиваset arWks (1) = Листове (1)set arWks (2) = Листове (2)Задайте arWks (3) = Листове (3)End Sub

Попълване на масив от динамични обекти

Можете да обявите обектния масив за динамичен и след това да преброите листовете в работната книга, преди да присвоите размера на масива на обектния масив.

1234567891011121314 Sub TestObjArray ()'дефинирайте масива като масив от работен листDim arWks () Като работен лист'пребройте колко работни листа във файла и повторно затъмнете масиваDim n като цяло числоDim i As Integer'пребройте листовете и минус едно, за да зададете границите за масиваn = Application.Sheets.Count - 1ReDim arWks (n)'попълнете масива на работния лист с всички листове в работната книгаЗа i = LBound (arWks) към UBound (arWks)Задайте arWks (i) = ActiveWorkbook.Sheets (i + 1)Следва iEnd Sub

В горния пример първо декларираме масива на работния лист. След това преброяваме броя листове в работната книга и присвояваме тази стойност минус един на UBound на масива. Това се дължи на факта, че LBound на масива започва като 0. Накрая преглеждаме листа и добавяме всеки лист към масива.

Използване на обектния масив във VBA кода

След като попълним масива на работния лист, можем да използваме VBA за цикъл през масива.

123456789101112131415161718 Sub TestObjArray ()'дефинирайте масива като масив от работен листDim arWks () Като работен лист'пребройте колко работни листа във файла и повторно затъмнете масиваDim n като цяло числоDim i As Integer'пребройте листовете и минус едно, за да зададете границите за масиваn = Application.Sheets.Count - 1ReDim arWks (n)'попълнете масива на работния лист с всички листове в работната книгаЗа i = LBound (arWks) към UBound (arWks)Задайте arWks (i) = ActiveWorkbook.Sheets (i + 1)Следва i„направете нещо за всеки лист в масиваЗа i = LBound (arWks) към UBound (arWks)arWks (i) .Range ("A1: H1"). Font.Bold = ВярноСледва iEnd Sub

В горния пример, ние циклично преминаваме през масива и удебеляваме първия ред на всеки лист в масива.

Така ще помогнете за развитието на сайта, сподели с приятелите си

wave wave wave wave wave