ВБА низ низова - Како пријавити и иницијализовати низ низова у програму Екцел ВБА?

Преглед садржаја

Низ низова Екцел ВБА

У ВБА, низ низа није ништа друго до променљива низа која може да садржи више од једне вредности низа са једном променљивом.

На пример, погледајте доленаведени ВБА код.

Шифра:

Суб Стринг_Арраи_Екампле () Дим ЦитиЛист (1 до 5) Као варијанта ЦитиЛист (1) = "Бангалоре" ЦитиЛист (2) = "Мумбаи" ЦитиЛист (3) = "Колката" ЦитиЛист (4) = "Хидерабад" ЦитиЛист (5) = "Орисса" МсгБок ЦитиЛист (1) & "," & ЦитиЛист (2) & "," & ЦитиЛист (3) & "," & ЦитиЛист (4) & "," & ЦитиЛист (5) Енд Суб

У горњем коду сам прогласио променљиву низа и доделио дужину низа од 1 до 5.

Дим ЦитиЛист (1 до 5) као варијанта

За ову променљиву низа доделио сам 5 имена градова у којима се помиње сваки број низа у загради.

ЦитиЛист (1) = "Бангалоре" ЦитиЛист (2) = "Мумбаи" ЦитиЛист (3) = "Колката" ЦитиЛист (4) = "Хидерабад" ЦитиЛист (5) = "Орисса"

Даље, написао сам код за приказ ових градова у оквиру за поруку.

МсгБок ЦитиЛист (1) & "," & ЦитиЛист (2) & "," & ЦитиЛист (3) & "," & ЦитиЛист (4) & "," & ЦитиЛист (5)

Када покренем овај код, добићемо оквир за поруку који приказује сва имена градова у једном оквиру за поруке.

Сви знамо да је ово уштедело толико времена из нашег распореда елиминисањем задатка декларисања појединачних променљивих за сваки град. Међутим, још једна ствар коју морате научити је да и даље можемо смањити код линије коју пишемо за стринг вредности. Погледајмо како пишемо код за ВБА низове низова.

Примери низа низова у програму Екцел ВБА

Испод су примери екцел ВБА низа низова.

Пример # 1

Као што смо видели у горњем коду, сазнали смо да можемо да похранимо више од једне вредности у променљиву на основу утврђене величине низа.

Сада оно што треба да урадимо је да не одредимо дужину низа унапред.

Шифра:

Суб Стринг_Арраи_Екампле1 () Дим ЦитиЛист () Као варијанта Крај Суб

Као што видите горе у загради, нисам написао ниједну дужину. Сада за ову променљиву, убацимо вредности помоћу функције ВБА АРРАИ.

Унутар низа проследите вредности у двоструким наводницима, одвојене зарезом (,).

Шифра:

Суб Стринг_Арраи_Екампле () Дим ЦитиЛист () Као варијанта ЦитиЛист = Арраи ("Бангалоре", "Мумбаи", "Колката", "Хидерабад", "Орисса") Крај Суб

Сада задржите стари код да бисте приказали резултат имена градова у оквиру за поруке у ВБА.

Шифра:

Суб Стринг_Арраи_Екампле1 () Дим ЦитиЛист () Као варијанта ЦитиЛист = Арраи ("Бангалоре", "Мумбаи", "Колката", "Хидерабад", "Орисса") МсгБок ЦитиЛист (0) & "," & ЦитиЛист (1) & " , "& ЦитиЛист (2) &", "& ЦитиЛист (3) &", "& ЦитиЛист (4) Крај Суб

Једна промена коју сам унео у горњи код је зато што нисмо одлучили за доњу и горњу границу променљиве низа и користили смо функцију АРРАИ. Број поља низова започиње од 0, а не од 1.

То је разлог зашто смо вредности поменули као ЦитиЛист (0), ЦлитиЛист (1), ЦитиЛист (2), ЦитиЛист (3) и ЦитиЛист (4).

Сада покрените код преко Екцел пречице Ф5 или ручно. Добијамо исти резултат као и из претходног кода.

Пример # 2

Низ низова ВБА са функцијама ЛБОУНД & УБОУНД

У случају да ако не желите да прикажете све листе градова у једном оквиру за поруку, онда морате да укључите петље, дефинишите још једну променљиву за петље.

Сада да бисмо укључили петљу ФОР НЕКСТ, нисмо сигурни колико пута треба да покренемо код. У овом случају можемо да одлучимо као пет пута, али то није прави начин да приступимо проблему. Па како је са идејом аутоматског идентификатора дужине низа нижег и вишег нивоа ???

Када отворимо петљу ФОР НЕКСТ, обично одредимо дужину петље од 1 до 5 или 1 до 10 у зависности од ситуације. Уместо да ручно уносимо бројеве, употребимо функције ЛБОУНД и УБОУНД за аутоматско одлучивање о доњој и горњој вредности.

За ЛБоунд и Убоунд сам навео име низа, тј. ЦитиЛист. ВБА ЛБоунд идентификује доњу вредност променљиве низа, а функција ВБА УБоунд идентификује горњу вредност променљиве низа.

Сада прикажи вредност у оквиру за поруке, уместо да убацујеш серијски број, нека променљива петље „к“ аутоматски узима вредност низа.

Шифра:

Суб Стринг_Арраи_Екампле1 () Дим ЦитиЛист () Као варијанта Дим к Ас Интегер ЦитиЛист = Арраи ("Бангалоре", "Мумбаи", "Колката", "Хидерабад", "Орисса") За к = ЛБоунд (ЦитиЛист) То УБоунд (ЦитиЛист) МсгБок ЦитиЛист (к) Следећи к Крај Суб

Сада ће оквир за поруке посебно приказивати свако име града.

Пример # 3

ВБА низ низова са функцијом раздвајања

Сада претпоставимо да имате имена градова као што је доле.

Бангалоре; Мумбај; Колката; Хидрабад; Орисса

In this case, all the cities are combined together with the colon separating each city. In such cases, we need to use the SPLIT function to separate each city.

For Expression, supply the city list.

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

The next argument is “Delimiter,” i.e., what is the one character that is separating each city from other cities. In this case, “Colon.”

Code:

Sub String_Array_Example2() Dim CityList() As String Dim k As Integer CityList = Split("Bangalore;Mumbai;Kolkata;Hydrabad;Orissa", ";") For k = LBound(CityList) To UBound(CityList) MsgBox CityList(k) Next k End Sub

Сада вредности поделе функције СПЛИТ такође одређују највећу дужину низа.

Ствари које треба запамтити

  • ЛБОУНД и УБОУНД су функције за одређивање дужина низа.
  • Функција АРРАИ може садржати много вредности за декларисану променљиву.
  • Ако једном желите да користите функцију АРРАИ, немојте одлучивати о дужини низа.

Занимљиви Чланци...