Kaikilla ohjelmointikielillä on muuttujan käyttöoikeusmäärittelyt, jotka määrittävät, mistä määriteltyä muuttujaa voidaan käyttää. Excel VBA ei ole poikkeus. Myös VBA: ssa on laajuuden määrittäjiä. Näitä laajuuden määrittäjiä voidaan käyttää muuttujan näkyvyyden/laajuuden asettamiseen Excel VBA: ssa.
Excel VBA: ssa on kolme tyyppiä laajuuden määrittäjää:
- Toimenpiteen taso
- Yksityinen - moduulitaso
- Julkinen - projektitaso
VBA -menettelytason muuttuva laajuus
Muuttujia, jotka on ilmoitettu aliohjelmassa, voidaan käyttää vain kyseisessä menettelyssä/funktiossa. Niillä on menettelytason laajuus. Ne ilmoitetaan yleensä Dim -avainsanalla. Jos moduuli on vaihtoehto implisiittinen, muuttujaa ei ehkä ole ilmoitettu, sitä on käytetty vain suoraan.
Alla olevassa esimerkissä meillä on aliohjelman laajuustesti, jolla on muuttuja x ja y. Kun suoritamme ensimmäisen aliohjelman, se toimii täydellisesti ja tulostaa X: n ja Y: n summan
Vaihtoehto Selkeä aliosaTesti () Dim x, y kokonaislukuna 'Toimenpiteen tason muuttuja VBA: ssa x = 2 y = 3 Virheenkorjaus Tulosta x + y Loppuosa Subsumma () x = 5 y = 7 Virheenkorjaus Tulosta x + y Lopeta osa
Mutta kun suoritat aliohjelmasumman, se antaa virheen, että muuttujaa ei ilmoiteta. Miksi? Koska X ja Y ovat yksityisiä menettelyn laajuuteen, testi ja aliohjelmasumma eivät voi käyttää niitä. Siksi alaosa joutuu virheeseen.
VBA Private Variable-Module Level Scope
Kun haluat julistaa muuttujan, jota on käytettävä koko moduulissa, ilmoitat sen muuttujan yksityiseksi moduulin yläosassa ennen aliohjelmaa tai toimintoa.
Muuttujat, jotka on ilmoitettu ennen moduulin aliohjelmaa, ovat oletuksena yksityisiä. Vaikka ilmoitat ne Dim -avainsanalla. Mutta tarkkuuden vuoksi on järkevää käyttää yksityistä avainsanaa.
Alla olevat kaksi menettelyä ovat samassa moduulissa, moduulissa 1.
Vaihtoehto Selkeä moduulitason muuttuja VBA: ssa. Molemmat muuttujat x ja y ovat tämän moduulin yksityisiä. ja 'voidaan käyttää mistä tahansa tämän moduulin aliosasta tai toiminnosta. Dim x kokonaislukuna yksityinen y kokonaislukuna Sub scopeTest () 'Tämä on käytettävissä mistä tahansa projektin moduulista x = 2 y = 3 Debug. Tulosta x + y End Sub Yksityinen osa () 'Tätä ei voi käyttää muista moduuleista x = 5 y = 7 Debug. Tulosta x + y End Sub
Edellä mainitut kaksi toimintoa toimivat täydellisesti, koska muuttuja x ja y ovat tämän moduulin yksityisiä muuttujia.
Tärkeä: Viimeiset arvoihin x ja y tallennetut arvot säilyvät koko moduulissa. Jos suoritamme alispektritestin ensin emmekä alusta x: n ja y: n arvoja alisummassa ja suoritamme sitä, niin x: n ja y: n alkuarvo pysyy muuttumattomana.
Alla oleva aliohjelma on määritelty erillisessä moduulissa, moduulissa 2. Kun yritän käyttää muuttujaa toisesta moduulista, VBA -menettely (tai toiminto) törmää virheeseen.
Mutta jos yritän kutsua aliohjelmaa summa moduulin 2 moduulista 1, tämä toimii täydellisesti. Jos haluat tehdä toiminnostasi ja aliohjelmistoistasi yksityisiä moduulille, käytä avainsanaa Yksityinen ala- ja funktion edessä.
Huomautus:- Muuttujat, jotka on ilmoitettu ennen moduulin aliohjelmaa tai toimintoa, ovat oletuksena moduulin yksityisiä. Voit käyttää Yksityinenavainsana. Mutta toiminnot ja aliohjelmat ovat oletusarvoisesti julkisia, ja niihin pääsee käsiksi mistä tahansa projektin moduulista. Jotta toiminnot ja aliohjelmat olisivat yksityisiä moduulille, sinun on käytettävä yksityistä avainsanaa.
Julkiset muuttujat- projektitaso
Kuten edellä olevista esimerkeistä opimme, funktio ja aliohjelmat ovat oletusarvoisesti julkisia, ja niihin pääsee käsiksi mistä tahansa moduulista, mutta muuttujat eivät. Jotta muuttuja olisi käytettävissä mistä tahansa Excel VBA: n moduulista,käytämme julkista avainsanaa.
Jos haluat julistaa julkisen muuttujan projektissa, olet ilmoittanut sen moduulin yläosassa ennen funktiota tai aliohjelmaa julkisella avainsanalla. Alla oleva koodi on kirjoitettu moduuliin 1.
Vaihtoehto Explicit 'Projektitason muuttuja VBA: ssa. Julkinen x kokonaislukuna Julkinen y kokonaislukuna Julkinen osa -alueTesti () 'Tähän pääsee mistä tahansa projektin moduulista y Lopeta Sub
Ja tämä aliohjelma on toisessa moduulissa, moduulissa 2.
Vaihtoehto Explicit Sub mul () Puhelun laajuus Testaa 'Puhelun summa', se ei toimi, koska se on yksityinen moduulille 1 Virheenkorjaus. Tulosta x * y Lopeta
Tällä kertaa se toimii täydellisesti.
Ensin olen kutsunut aliohjelman laajuustestiksi. Koska scaleTest on julkinen, sitä kutsutaan. Se alustaa x: n ja y: n arvot. Seuraavaksi kerrotaan x ja y. Koska scaleTest -aliohjelma oli alustanut sen arvoilla 2 ja 3, saamme tuloksen 6.
Joten kyllä kaverit, tällä tavalla voit käyttää Excelin muuttujan laajuuden määrittäjiä muuttujien, toimintojen ja aliohjelmien näkyvyyden hallintaan Excel VBA -projekteissa.
Yritin selittää VBA: n pääsyn määrittelyt yksinkertaisimmalla tavalla. Toivottavasti se oli selittävä. Jos sinulla on epäilyksiä tästä artikkelista tai muista VBA -aiheisiin liittyvistä epäilyistä, kysy minulta alla olevasta kommenttiosasta. Tulen mielelläni täältä.
ByRef- ja ByVal -argumentit | Kun argumentti välitetään ByRef -argumenttina toiselle ala- tai funktiolle, todellisen muuttujan viite lähetetään. Kaikki muuttujan kopioon tehdyt muutokset näkyvät alkuperäisessä argumentissa.
Poista taulukot ilman vahvistuskehotteita Microsoft Excelin VBA: n avulla | Koska poistat arkkeja VBA: n avulla, tiedät mitä teet. Haluat kertoa Excelille, ettei se näytä tätä varoitusta ja poista kirottu arkki.
Lisää ja tallenna uusi työkirja VBA: n avulla Microsoft Excel 2016 | Tässä koodissa loimme ensin viittauksen työkirjaobjektiin. Ja sitten alustimme sen uudella työkirjaobjektilla. Tämän lähestymistavan etuna on, että voit tehdä tämän uuden työkirjan toimintoja helposti. Kuten tallentaminen, sulkeminen, poistaminen jne
Näytä viesti Excel VBA: n tilarivillä Excelin tilariviä voidaan käyttää koodinäytönä. Kun VBA -koodisi on pitkä ja teet useita tehtäviä VBA: n avulla, poistat usein näytön päivityksen käytöstä, jotta et näe sitä välkkyvää
Poista varoitusviestit käytöstä VBA: n avulla Microsoft Excel 2016 | Tämä koodi ei vain poista VBA -hälytyksiä käytöstä, vaan myös lisää koodin aikatehokkuutta. Katsotaanpa miten.
Suosittuja artikkeleita:
50 Excel -pikanäppäintä tuottavuuden lisäämiseksi | Nopeuta tehtävääsi. Nämä 50 pikanäppäintä tekevät työskentelystäsi entistä nopeampaa Excelissä.
VLOOKUP -toiminto Excelissä | Tämä on yksi eniten käytetyistä ja suosituimmista Excel -toiminnoista, jota käytetään arvon etsimiseen eri alueilta ja arkeilta.
COUNTIF Excel 2016: ssa | Laske arvot olosuhteilla käyttämällä tätä hämmästyttävää toimintoa. Sinun ei tarvitse suodattaa tietojasi tietyn arvon laskemiseksi. Laskutoiminto on välttämätön kojelaudan valmistelemiseksi.
SUMIF -toiminnon käyttäminen Excelissä | Tämä on toinen kojelaudan olennainen toiminto. Tämä auttaa sinua laskemaan yhteen arvot tietyissä olosuhteissa.