Excel VBA обществена променлива

Променливата е важна част от живота на програмистите. Всеки път, когато програмист кодира, той създава някакъв набор от променливи. Променливата може да се счита за ваучер, който често използваме в сайтове за онлайн пазаруване като Flipkart, Amazon и др., Които ви позволяват да имате определена отстъпка от определени предварително зададени продукти. Същият е случаят с променлива. Променлива може да се дефинира граматически като заместител, който запазва известна памет в системата с определено име. Това пространство на паметта може да бъде използвано по всяко време със същото име.

Променлива VBA се счита за публична променлива при две обстоятелства. Кога -

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

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

Преди да стартираме концепцията за VBA Public променлива, трябва да разберем, че променливите, които се използват в една под-процедура, не могат да бъдат използвани в другата под-процедура (именно там започнахме да чувстваме необходимостта от публична променлива който може да се използва във всеки модул, под-процедура).

Да предположим, че създаваме под-процедура във VBA и дефинираме нова променлива там с помощта на оператор Dim.

В този код, var1 е променливата, дефинирана в под-процедура Ex_Var .

Сега ще дефинирам нова под-процедура и иронията е, че не мога да използвам предварително дефинирания var1 в тази под-процедура. Вижте екрана по-долу, където се опитвам да присвоя стойност 10 на var1 при различна под-процедура. Вижте и съобщението за грешка, след като стартираме кода.

Чрез деклариране на променливи под подпроцедури, ние ги ограничаваме да се използват само от тази под-процедура. Това е основен недостатък на декларирането на променлива в рамките на под-процедура.

Това води до новата теория, която включва променливото деклариране извън под-процедурите. Това ще помогне на програмиста да използва дефинираните променливи широко с различни подпроцедури.

Как да декларирам публични променливи в VBA?

Нека разгледаме няколко примера за деклариране на публични променливи в VBA.

Можете да изтеглите този шаблон на Excel за обществени променливи от Excel тук - VBA обществени променливи Excel шаблон

Пример №1 - Дефиниране на променлива публично в рамките на модул

Да предположим, че искаме да определим променлива, която може да бъде достъпна публично във всички кодове в рамките на един модул. Можем да го направим. Следвайте стъпките по-долу:

Стъпка 1: Отворете своя Visual Basic Editor (VBE), като натиснете Alt + F11 или щракнете върху бутона Visual Basic в раздела Developers в Excel. Изберете раздел Вмъкване, отидете до Модули и щракнете върху него. Той ще добави нов модул във VBE, върху който ще работи.

Стъпка 2: В новосъздадения модул добавете командата Option Explicit в началото на вашия VBA код (преди да създадете променлива). Опция Изрично ви помага, ако има някаква печатна грешка, докато използвате определената променлива. Ако използваната променлива не е дефинирана в системата, тази опция хвърля съобщение за грешка, казвайки, че променливата не е дефинирана.

Код:

 Вариант изрично 

Стъпка 3: Използвайте оператор Dim, за да създадете нова променлива с име my_name с тип данни като String.

Код:

 Опция Изрично Dim my_name като String 

Ако можете да обърнете внимание, ние дефинирахме тази променлива изрично. Значение, тя не е част от специфична под-процедура. Което автоматично прави тази променлива достъпна за всички кодове в рамките на създадения модул (Module1). Това се нарича дефиниране на променлива публично в рамките на модул. Тази променлива може да се използва навсякъде в множество подпроцедури в рамките на един и същ модул.

Да предположим, че кодът, даден по-долу, присвоих стойност на променлива my_name като „Lalit Salunkhe“.

Код:

 Опция Изрично Dim my_name като String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Моето име е:" & my_name End Sub 

Ако пусна този код, ще видя полето за съобщения, както е показано на екрана по-долу:

Можем също да използваме тази променлива в различни подпроцеси в рамките на един и същ модул. Вижте екрана, даден по-долу:

Код:

 Опция Изрично Dim my_name като String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Моето име е:" & my_name End Sub Sub Ex_2 () Dim my_age As Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Моето име е: "& my_name &"; Моята възраст е: "& my_age End Sub 

Вижте под-проп. Ex_2 Той има нова променлива дефинирана my_age. Използвал съм my_name, за да добавя името си и my_age, за да добавя текущата възраст на моята. Можете да видите, че my_name все още е достъпен във втората под-процедура. След като пусна този код, можем да получим изхода като поле за съобщения, показано по-долу:

Ето как можем да определим променлива публично в рамките на модул.

Пример №2 - Определете публично променлива във всички модули

За да постигнете този подвиг, трябва да използвате ключовите думи като Public или Global вместо Dim, което задава променливата като обществена за всички модули, където и да работите.

Стъпка 1: Създайте нов модул. Отидете на раздел Вмъкване, щракнете върху Модул, за да добавите нов модул под VBE.

Стъпка 2: Добавяне на опция, изрична в модула.

Код:

 Вариант изрично 

Стъпка 3: Определете нова променлива с име var1 и var2 и двете като цяло число. Но този път използвайки Public изявление вместо Dim (което използвахме по-рано).

Код:

 Опция Изрична публична var1 като Integer Public var2 Като Integer 

Стъпка 4: Сега тези две променливи могат да се използват в множество модули, ако са създадени под един и същ VBE. Вижте примера, даден по-долу:

Код:

 Вариант Изрично публично var1 Като Integer Public var2 Като Integer Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "Стойността за var1 е:" & var1 & Chr (13) & "Стойността за var2 е:" & var2 End Sub 

Ние сме присвоили стойностите на двете променливи, използвайки функция MsgBox, опитвайки се да покажем стойности за тези две променливи.

Стъпка 5: Стартирайте кода чрез натискане на клавиша F5 или като кликнете върху бутона Play, можете да видите изход, както е показано по-долу:

Стъпка 6: Ще използваме същите променливи под Module1, които сме използвали в първия пример, и ще се опитаме да разберем дали променливите са достъпни там или не.

Код:

 Опция Изрично Dim my_name като String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Моето име е:" & my_name End Sub Sub Ex_2 () Dim my_age As Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Моето име е: "& my_name &"; Моята възраст е: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Стойността за var1 е: "& var1 & Chr (13) &" Стойността за var2 е: "& var2 Край Sub 

Ако можете да видите екрана по-горе, използвахме същия набор от променливи, дефинирани под Module2 и имат стойности като 1000 и 999 съответно. Използваме функцията MsgBox, за да представим стойностите на тези две променливи съответно. Стартирайте кода и можете да видите изхода, както е показано по-долу:

Ето как променлива може да се използва публично в рамките на модула и във всички модули.

Неща, които трябва да запомните

  • Винаги се предпочита да се определят променливите изрично в VBA. Така че те не се ограничават до под-процедурата, в която са дефинирани.
  • Можете да зададете публична променлива по два начина: един в модул, използващ конвенционален оператор Dim и втори във всички модули, присъстващи в VBE, използвайки някой от публичните или глобалните оператори.

Препоръчителни статии

Това е ръководство за публичната променлива на VBA. Тук обсъждаме как да декларираме публична променлива в Excel, използвайки VBA код в excel, заедно с практически примери и шаблон за excel за сваляне. Можете да разгледате и другите ни предложени статии -

  1. VBA глобални променливи
  2. Една таблица с променливи данни в Excel
  3. VBA FileSystemObject (FSO)
  4. Две таблици с променливи данни в Excel

Категория: