Variabilný rozsah Excel VBA

Obsah:

Anonim

Vo všetkých programovacích jazykoch máme špecifikátory prístupu k premenným, ktoré definujú, odkiaľ je k definovanej premennej prístup. Excel VBA nie je výnimkou. VBA má tiež špecifikátory rozsahu. Tieto špecifikátory rozsahu je možné použiť na nastavenie viditeľnosti/rozsahu premennej v programe Excel VBA.

V programe Excel VBA máme tri typy špecifikátorov rozsahu:

  1. Úroveň postupu
  2. Súkromné ​​- Úroveň modulu
  3. Verejné - Úroveň projektu

Variabilný rozsah procedúry na úrovni VBA

K premenným, ktoré sú deklarované v rámci podprogramu, je prístup iba v rámci tejto procedúry/funkcie. Majú rozsah na úrovni postupu. Obvykle sú deklarované pomocou kľúčového slova Dim. Ak je modul voliteľný, potom premenná nemusela byť deklarovaná, ale použitá priamo.

V nižšie uvedenom príklade máme test podprogramu rozsahu, ktorý má premennú x a y. Keď spustíme prvý podprogram, beží perfektne a vytlačí súčet X a Y

Možnosť Explicitný podrozsahTest () Dim x, y ako celé číslo „Premenná na úrovni procedúry vo VBA x = 2 y = 3 Debug.Print x + y End Sub Sub sum () x = 5 y = 7 Debug.Print x + y End Sub

Keď však spustíte súčet podprogramov, vyvolá to chybu, že premenná nie je deklarovaná. Prečo? Pretože X a Y sú súkromné ​​pre rozsah procedúryTestový a podprogramový súčet k nim nemá prístup. Preto sa sub vyskytne chyba.

Súkromná premenná VBA- rozsah úrovne modulu

Ak chcete deklarovať premennú, ku ktorej je potrebné pristupovať v celom module, potom deklarujte túto premennú ako súkromnú v hornej časti modulu pred akýmkoľvek podprogramom alebo funkciou.

Premenné deklarované pred akýmkoľvek podprogramom v module sú predvolene súkromné. Aj keď ich deklarujete pomocou kľúčového slova Dim. Ale aby sme boli konkrétni, je múdre používať súkromné ​​kľúčové slovo.

Nasledujúce dva postupy sú v tom istom module, module 1.

Explicitná možnosť „Premenná na úrovni modulu vo VBA. Obe premenné x a y sú pre tento modul súkromné. a 'sú prístupné z akéhokoľvek podradeného prvku alebo funkcie v rámci tohto modulu. Dim x Ako celé číslo Súkromné ​​y Ako celé číslo Sub scopeTest () 'K tomuto je prístup z akéhokoľvek modulu v projekte x = 2 y = 3 Debug. Tlač x + y End Sub Súkromný súčet () „K tomuto nie je možné pristupovať z iných modulov x = 5 y = 7 Debug.Print x + y End Sub 

Vyššie uvedené dve funkcie budú fungovať úplne v poriadku, pretože premenné xay sú súkromné ​​premenné tohto modulu.

Dôležité: Posledné hodnoty uložené v xay zostanú zachované až do celého modulu. Ak najskôr spustíme sub scopeTest a neinicializujeme hodnoty x a y v súčte a spustíme ho, potom počiatočná hodnota x a y zostane nezmenená.

Nasledujúci podprogram je definovaný v samostatnom module, module 2. Keď sa pokúšam získať prístup k premennej z iného modulu, procedúra (alebo funkcia) VBA narazí na chybu.

Ale ak sa pokúsim zavolať podprogram súčet z modulu 1 v module 2 to funguje perfektne. Aby bola vaša funkcia a podprogramy pre modul súkromné, pred podfunkciou a funkciou použite kľúčové slovo súkromné.

Poznámka:- Premenné deklarované pred akýmkoľvek podprogramom alebo funkciou v module sú pre modul predvolene súkromné. Môžete použiť Súkromnékľúčové slovo. Funkcie a podprogramy sú však predvolene verejné a môže k nim pristupovať akýkoľvek modul v projekte. Na to, aby boli funkcie a podprogramy pre modul súkromné, musíte použiť kľúčové slovo Súkromné.

Verejné premenné- rozsah pôsobnosti projektu

Ako sme sa dozvedeli vo vyššie uvedených príkladoch, funkcia a podprogramy sú predvolene verejné a je k nim prístup z akéhokoľvek modulu, ale k premenným nie. Ak chcete premennú sprístupniť z akéhokoľvek modulu v programe Excel VBA,používame verejné kľúčové slovo.

Ak chcete deklarovať verejnú premennú v projekte, deklarovali ste ich v hornej časti modulu pred každou funkciou alebo podprogramom s verejným kľúčovým slovom. Nasledujúci kód je zapísaný v module 1.

Explicitná možnosť „Premenná na úrovni projektu vo VBA. Verejné x ako celé číslo Verejné ako celé číslo Verejný test subrozsahu () „K tomuto je možné pristupovať z ľubovoľného modulu v projekte x = 2 y = 3 Koncový čiastkový podsúčet ()“ K tomuto nie je možné pristupovať z iných modulov x = 5 y = 7 Debug.Print x + y Koniec Sub

A tento podprogram je v inom module, module 2.

Voľba Explicitný sub mul () Rozsah hovoru Test „Suma hovoru“ nebude fungovať, pretože je súkromný pre modul 1 Ladenie. Tlač x * y Koniec Sub 

Tentokrát to beží perfektne.
Najprv som nazval podprogram scopeTest. Pretože scopeTest je verejný, nazýva sa. Inicializuje hodnoty x a y. Ďalej vynásobíme x a y. Pretože podprogram scopeTest ho inicializoval s hodnotami 2 a 3, výsledkom je 6.

Takže áno, chlapci, takto môžete použiť špecifikátory rozsahu premenných v Exceli na ovládanie viditeľnosti premenných, funkcií a podprogramov v projektoch Excel VBA.

Pokúsil som sa vysvetliť špecifikátory prístupu VBA najjednoduchším spôsobom, ako som mohol. Dúfam, že to bolo vysvetľujúce. Ak máte akékoľvek pochybnosti týkajúce sa tohto článku alebo akékoľvek iné pochybnosti súvisiace s VBA, opýtajte sa ma v sekcii komentárov nižšie. Budem tu od vás rád.

Argumenty ByRef a ByVal | Keď je argument odoslaný ako argument ByRef do inej podskupiny alebo funkcie, odošle sa odkaz na skutočnú premennú. Všetky zmeny vykonané v kópii premennej sa prejavia v pôvodnom argumente.

Odstráňte hárky bez výziev na potvrdenie pomocou jazyka VBA v programe Microsoft Excel | Keďže hárky odstraňujete pomocou jazyka VBA, viete, čo robíte. Chcete Excelu povedať, aby toto upozornenie nezobrazoval a vymazal ten prekliaty hárok.

Pridať a uložiť nový zošit pomocou jazyka VBA v programe Microsoft Excel 2016 | V tomto kóde sme najskôr vytvorili odkaz na objekt zošita. A potom sme to inicializovali novým objektom zošita. Výhodou tohto prístupu je, že môžete ľahko vykonávať operácie s týmto novým zošitom. Rovnako ako ukladanie, zatváranie, mazanie atď

Zobraziť správu na stavovom riadku programu Excel VBA Stavový riadok v programe Excel je možné použiť ako monitor kódu. Keď je váš kód VBA dlhý a vykonávate niekoľko úloh pomocou jazyka VBA, často deaktivujete aktualizáciu obrazovky, aby ste nevideli, ako táto obrazovka bliká.

Vypnúť výstražné správy pomocou VBA v programe Microsoft Excel 2016 | Tento kód nielenže deaktivuje upozornenia VBA, ale tiež zvýši časovú efektívnosť kódu. Pozrime sa ako.

Populárne články:

50 skratiek programu Excel na zvýšenie produktivity | Vykonajte svoju úlohu rýchlejšie. Týchto 50 skratiek vám umožní pracovať ešte rýchlejšie v Exceli.

Funkcia VLOOKUP v programe Excel | Toto je jedna z najpoužívanejších a najobľúbenejších funkcií programu Excel, ktorá sa používa na vyhľadávanie hodnôt z rôznych rozsahov a hárkov.

COUNTIF v Exceli 2016 | Počítajte hodnoty s podmienkami pomocou tejto úžasnej funkcie. Na počítanie konkrétnej hodnoty nie je potrebné filtrovať údaje. Funkcia Countif je potrebná na prípravu palubnej dosky.

Ako používať funkciu SUMIF v programe Excel | Toto je ďalšia zásadná funkcia palubnej dosky. To vám pomôže zhrnúť hodnoty za konkrétnych podmienok.