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

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

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

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

Шифра:

 Суб Стринг_Арраи_Екампле () Дим ЦитиЛист (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

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

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

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

У овом случају, сви градови се комбинују заједно са двотачком која раздваја сваки град. У таквим случајевима морамо да користимо функцију СПЛИТ да раздвојимо сваки град.

За Израз снабдевање градском листом.

Шифра:

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

Следећи аргумент је „Делимитер“, тј. Који је то карактер који одваја сваки град од осталих градова, у овом случају „Цолон“.

Шифра:

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

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

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

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