Екцел ВБА јавна променљива

Променљива је важан део живота програмера. Сваки пут када програмер кодира створи неки скуп променљивих. Променљива се може сматрати ваучером који често користимо на веб локацијама за куповину на мрежи као што су Флипкарт, Амазон, итд. Који вам омогућавају да имате одређени попуст на одређене предефинисане производе. Исти је случај и са променљивом. Променљива се може граматички дефинисати као резервирано место које задржава одређену меморију у систему са одређеним именом. Тај меморијски простор тада се може користити било када са истим називом.

ВБА варијабла се сматра јавном променљивом у две околности. Када -

  • Може се користити заједно са свим кодовима унутар модула.
  • Може се користити заједно са свим кодовима за различите модуле.

У лаичком смислу, променљива се сматра јавном променљивом када се може користити у било којем коду и у било којем модулу. У овом чланку ћемо ускоро видети како се променљива може дефинисати. Како се то може дефинисати јавно унутар ВБА.

Пре него што покренемо концепт ВБА јавне променљиве, морамо да разумемо да се променљиве које се користе у једном подпроцедури не могу користити у другом подпроцедури (тамо смо почели да осећамо потребу да имамо јавну променљиву који се може користити преко било којег модула, било којег под-поступка).

Претпоставимо да створимо потпроцедура у ВБА и тамо дефинишемо нову променљиву користећи исказ Дим.

У овом коду, вар1 је променљива која је дефинисана у потпоступку Ек_Вар .

Сада ћу дефинисати нови под-поступак и иронија је да не могу да користим претходно дефинисани вар1 у овом под-поступку. Погледајте снимак екрана испод, где покушавам да доделим вредност 10 вар1 у различитим под-процедурама. Погледајте поруку о грешци и након што покренемо код.

Изјавом променљивих у подпроцедуре, ограничавамо их да користе само тај под-поступак. То је главни недостатак проглашавања променљиве у оквиру под-поступка.

То доводи до нове теорије, која укључује декларацију променљиве изван под-процедура. Ово ће помоћи програмеру да широко користи дефинисане променљиве са различитим подпроцедурама.

Како декларирати јавне променљиве у ВБА?

Погледајмо неколико примера за проглашавање јавних променљивих у ВБА.

Можете преузети овај предложак Екцела за јавне променљиве ВБА овде - ВБА образац јавних променљивих Екцел

Пример # 1 - Дефинисање променљиве јавно у модулу

Претпоставимо да желимо да дефинишемо променљиву којој се може јавно приступити кроз све кодове унутар једног модула. Можемо то да урадимо. Следите доле наведене кораке:

1. корак: Отворите свој Висуал Басиц Едитор (ВБЕ) притиском на Алт + Ф11 или кликом на дугме Висуал Басиц на картици Девелоперс у Екцелу. Одаберите картицу Уметање, помакните се до модула и кликните на њу. Додаће нови модул унутар ВБЕ-а на којем ће радити.

Корак 2: Унутар новоствореног модула додајте наредбу Оптион Екплицит на почетку свог ВБА кода (пре него што креирате било коју променљиву). Опција експлицитна вам помаже ако постоји погрешка при коришћењу дефинисане променљиве. Ако кориштена варијабла није дефинирана у систему, ова опција баца поруку о погрешци која каже да варијабла није дефинирана.

Шифра:

 Опција експлицитна 

Корак 3: Употријебите израз Дим да бисте креирали нову променљиву име ми_наме са типом података као Стринг.

Шифра:

 Опција Изричит Дим ми_наме као стринг 

Ако можете обратити пажњу, ми смо дефинитивно дефинисали ову променљиву. Значи, то није део посебне под-процедуре. Које аутоматски ову варијаблу чине доступном за све кодове у модулу креираном (Модуле1). То се назива дефинисањем променљиве јавно унутар модула. Ова се варијабла може користити било где у више потпроцесија унутар истог модула.

Претпоставимо да је код наведен у даљем тексту, променљивој ми_наме доделио сам вредност „Лалит Салункхе“.

Шифра:

 Опција Изричит Дим ми_наме Ас Стринг Суб Ек_1 () ми_наме = "Лалит Салункхе" МсгБок "Ми наме ис:" & ми_наме Енд Суб 

Ако покренем овај код, видећу оквир за поруке као што је приказано на слици испод:

Ову променљиву такође можемо користити у различитим подпроцесовима унутар истог модула. Погледајте снимак слике дат у наставку:

Шифра:

 Опција Изричит Дим ми_наме Ас Стринг Суб Ек_1 () ми_наме = "Лалит Салункхе" МсгБок "Ми наме ис:" & ми_наме Енд Суб Суб Ек_2 () Дим ми_аге Ас Интегер ми_наме = "Лалит Салункхе" ми_аге = 28 МсгБок "Ми наме ис: "& ми_наме &"; Моја година је: "& ми_аге Енд Суб 

Погледајте Ек_2 подпроцему. Има нову променљиву дефинисану ми_аге. Користио сам ми_наме да додам своје име и ми_аге да бих додао тренутну старост мог. Можете да видите да је моје име и даље доступно у другом под-поступку. Једном када покренем овај код, можемо добити излаз као оквир за поруке приказан доле:

На овај начин можемо дефинисати променљиву јавно унутар модула.

Пример бр. 2 - Дефинишите променљиву јавно кроз све модуле

Да бисте постигли овај подвиг, требате користити кључне речи као Јавне или Глобалне, а не Дим, које променљиву постављају као јавну за све модуле где год да радите.

1. корак: Креирајте нови модул. Идите на картицу Уметање, кликните на Модул да бисте додали нови модул под ВБЕ.

Корак 2: Додајте опцију која је експлицитна унутар модула.

Шифра:

 Опција експлицитна 

Корак 3: Дефинирајте нову променљиву која се зове вар1 и вар2 као оба типа типа. Али овај пут помоћу јавне изјаве уместо Дим-а (који смо раније користили).

Шифра:

 Опција Изричито јавна вар1 Као Интегер Публиц вар2 Као Интегер 

Корак 4: Сада се ове две променљиве могу користити у више модула ако су креиране под истим ВБЕ. Погледајте пример дат у наставку:

Шифра:

 Опција Изричито јавна вар1 Као Интегер Публиц вар2 Као Интегер Суб Ек_3 () вар1 = 10 вар2 = 100 МсгБок "Вредност за вар1 је:" & вар1 & Цхр (13) & "Вредност за вар2 је:" & вар2 Енд Суб 

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

Корак 5: Покрените код притиском на тастер Ф5 или кликом на дугме Плаи, можете видети излаз као што је приказано у наставку:

Корак 6: Користићемо исте променљиве под Модулом1 које смо користили у првом примеру и покушаћемо да установимо да ли су променљиве тамо доступне или не.

Шифра:

 Опција Изричит Дим ми_наме Ас Стринг Суб Ек_1 () ми_наме = "Лалит Салункхе" МсгБок "Ми наме ис:" & ми_наме Енд Суб Суб Ек_2 () Дим ми_аге Ас Интегер ми_наме = "Лалит Салункхе" ми_аге = 28 МсгБок "Ми наме ис: "& ми_наме &"; Моја година је: "& ми_аге Енд Суб Суб Ек_публиц () вар1 = 1000 вар2 = 999 МсгБок" Вредност за вар1 је: "& вар1 & Цхр (13) &" Вредност за вар2 је: "& вар2 Енд Суб 

Ако бисте могли да видите горњи екран, користили смо исти скуп променљивих који су дефинисани у Модуле2 и имају вредности попут 1000 и 999 респективно. Ми користимо МсгБок функцију да представимо вредности ове две променљиве. Покрените код и можете видети излаз као доле:

Овако се варијабла може јавно користити у модулу и преко модула.

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

  • Увек је преферирано да се варијабле експлицитно дефинишу у ВБА. Тако да нису ограничени на подпроцеду у којој су дефинисани.
  • Јавну променљиву можете доделити на два начина: један унутар модула користећи конвенционалну Дим изјаву и други кроз све модуле присутне у ВБЕ помоћу било јавног или глобалног израза.

Препоручени чланци

Ово је водич за ВБА јавну променљиву. Овде смо расправљали о томе како декларирати јавну променљиву у Екцелу користећи ВБА код у екцелу заједно са практичним примерима и довнлоад-ом Екцел предлошка. Можете и да прођете кроз друге наше предложене чланке -

  1. ВБА Глобал Вариаблес
  2. Једна табела променљивих података у Екцелу
  3. ВБА ФилеСистемОбјецт (ФСО)
  4. Две табеле променљивих података у Екцелу

Категорија: