Domeniul de aplicare variabil VBA Excel

În toate limbajele de programare, avem specificatori de acces variabil care definesc de unde poate fi accesată o variabilă definită. Excel VBA nu este o excepție. Și VBA are specificatori de domeniu. Acești specificatori de domeniu pot fi utilizați pentru a seta vizibilitatea / sfera unei variabile în Excel VBA.

În Excel VBA, avem trei tipuri de specificatori de domeniu:

  1. Nivelul procedurii
  2. Privat - Nivel modul
  3. Public - Nivelul proiectului

Nivelul procedurii VBA Domeniu de aplicare variabil

Variabilele care sunt declarate în cadrul unui subrutin pot fi accesate numai în acea procedură / funcție. Au un domeniu de aplicare la nivel de procedură. Acestea sunt de obicei declarate cu cuvânt cheie Dim. Dacă modulul este opțiunea implicită, atunci este posibil ca variabila să nu fi fost declarată, doar utilizată direct.

În exemplul de mai jos, avem un test de scop subrutină care are variabile x și y. Când rulăm primul subrutină, acesta rulează perfect și imprimă suma lui X și Y

Opțiune Explicit Sub scopeTest () Dim x, y Ca întreg 'Variabilă de nivel de procedură în VBA x = 2 y = 3 Depanare. Tipărire x + y Sfârșit Sub sum sum () x = 5 y = 7 Depanare. Imprimare x + y Sfârșit Sub

Dar când executați suma subrutinei, aceasta generează o eroare că variabila nu este declarată. De ce? Deoarece X și Y sunt private pentru procedura scopeTest și suma subrutinei nu au acces la ele. Prin urmare, sub-ul se confruntă cu o eroare.

VBA Variable Private- Scopul nivelului modulului

Când doriți să declarați o variabilă care trebuie accesată în întregul modul, atunci declarați acea variabilă ca privată în partea de sus a modulului, înainte de orice subrutină sau funcție.

Variabilele declarate înainte de orice subrutină, în modul, sunt implicite private. Chiar dacă le declarați cu cuvânt cheie Dim. Dar, pentru a fi specific, este înțelept să folosiți cuvântul cheie Privat.

Cele două proceduri de mai jos sunt în același modul, modulul 1.

Opțiune Explicită 'Variabilă de nivel modul în VBA. Ambele variabile x și y sunt private pentru acest modul. și 'poate fi accesat din orice sub sau funcție din acest modul. Dim x As Integer Private y As Integer Sub scopeTest () 'Acesta poate fi accesat din orice modul din proiect x = 2 y = 3 Debug. Imprimare x + y End Sub Subsum privat () „Acest lucru nu poate fi accesat din alte module x = 5 y = 7 Debug. Imprimați x + y End Sub 

Cele două funcții de mai sus vor funcționa perfect, deoarece variabilele x și y sunt variabilele private ale acestui modul.

Important: Ultimele valori stocate în x și y sunt păstrate până în întregul modul. Dacă executăm mai întâi sub scopeTest și nu inițializăm valorile lui x și y în sub sumă și îl executăm, atunci valoarea inițială a lui x și y va rămâne neschimbată.

Subrutina de mai jos este definită într-un modul separat, modulul 2. Când încerc să accesez variabila dintr-un alt modul, procedura (sau funcția) VBA intră într-o eroare.

Dar dacă încerc să sun subrutina sumă din modulul 1 din modulul 2, acest lucru funcționează perfect. Pentru a vă face funcția și subrutinele private la modul, utilizați cuvântul cheie Privat înainte de sub și funcție.

Notă:- Variabilele declarate înainte de orice subrutină sau funcție într-un modul sunt private pentru modul în mod implicit. Puteți utiliza Privatcuvânt cheie. Dar funcțiile și subrutinele sunt publice în mod implicit și pot fi accesate de orice modul dintr-un proiect. Pentru a face funcții și subrutine private la modul, trebuie să utilizați cuvântul cheie Privat.

Variabile publice - Scopul nivelului proiectului

După cum am aflat în exemplele de mai sus, funcția și subrutinele sunt implicite publice și pot fi accesate din orice modul, dar variabilele nu. Pentru a face o variabilă accesibilă din orice modul din Excel VBA,folosim cuvânt cheie public.

Pentru a declara o variabilă publică într-un proiect, le-ați declarat în partea de sus a modulului, înainte de orice funcție sau subrutină cu cuvântul cheie public. Codul de mai jos este scris în modulul 1.

Opțiunea Explicită 'Variabilă la nivel de proiect în VBA. Public x As Integer Public y As Integer Public Sub scopeTest () 'Acesta poate fi accesat din orice modul din proiect x = 2 y = 3 End Sub Private Sub sum ()' Acest lucru nu poate fi accesat din alte module x = 5 y = 7 Debug. Imprimare x + y End Sub

Și acest subrutină se află într-un alt modul, modulul 2.

Opțiune Explicit Sub mul () Domeniu de apel Testați „Suma apelului” nu va funcționa, deoarece este privat pentru modulul 1 Debug. 

De data aceasta rulează perfect.
Mai întâi am numit subrutina scopeTest. Deoarece scopeTest este public, se numește. Inițializează valorile lui x și y. Apoi, înmulțim x și y. Deoarece subrutina scopeTest a inițializat-o cu valorile 2 și 3, rezultatul pe care îl obținem este 6.

Deci, băieți, așa puteți folosi specificatorii de domeniu variabil în Excel pentru a controla vizibilitatea variabilelor, funcțiilor și subrutinelor din proiectele Excel VBA.

Am încercat să explic specificațiile de acces ale VBA în cel mai simplu mod în care am putut. Sper că a fost explicativ. Dacă aveți îndoieli cu privire la acest articol sau orice altă îndoială legată de VBA, întrebați-mă în secțiunea de comentarii de mai jos. Voi fi fericit să vin de la tine.

Argumente ByRef și ByVal | Atunci când un argument este transmis ca argument ByRef către o altă funcție sau sub, se trimite referința variabilei reale. Orice modificare adusă copiei variabilei se va reflecta în argumentul original.

Ștergeți foile fără solicitări de confirmare folosind VBA în Microsoft Excel | Deoarece ștergeți foile folosind VBA, știți ce faceți. Ați dori să spuneți Excel să nu afișeze acest avertisment și să șteargă afurisita de foaie.

Adăugați și salvați un registru de lucru nou folosind VBA în Microsoft Excel 2016 | În acest cod, am creat mai întâi o referință la un obiect de registru de lucru. Și apoi l-am inițializat cu un nou obiect de registru de lucru. Avantajul acestei abordări este că puteți face operațiuni cu ușurință pe acest nou registru de lucru. Cum ar fi salvarea, închiderea, ștergerea etc.

Afișați un mesaj pe bara de stare Excel VBA Bara de stare în excel poate fi utilizată ca monitor de cod. Când codul dvs. VBA este lung și faceți mai multe sarcini folosind VBA, dezactivați adesea actualizarea ecranului, astfel încât să nu vedeți ecranul care pâlpâie

Dezactivați mesajele de avertizare folosind VBA în Microsoft Excel 2016 | Acest cod nu numai că dezactivează alertele VBA, ci și crește eficiența timpului codului. Să vedem cum.

Articole populare:

50 de comenzi rapide Excel pentru a vă crește productivitatea | Deveniți mai rapid la sarcina dvs. Aceste 50 de comenzi rapide vă vor face să lucrați și mai rapid pe Excel.

Funcția VLOOKUP în Excel | Aceasta este una dintre cele mai utilizate și populare funcții ale Excel, care este utilizată pentru a căuta valoarea din diferite intervale și foi.

COUNTIF în Excel 2016 | Numărați valorile cu condiții folosind această funcție uimitoare. Nu trebuie să vă filtrați datele pentru a număra o anumită valoare. Funcția Countif este esențială pentru a vă pregăti tabloul de bord.

Cum se utilizează funcția SUMIF în Excel | Aceasta este o altă funcție esențială a tabloului de bord. Acest lucru vă ajută să rezumați valori în condiții specifice.

Vei ajuta la dezvoltarea site-ului, partajarea pagina cu prietenii

wave wave wave wave wave