Mikä on ByRef VBA: ssa?

Byref VBA: ssa tarkoittaa ”viitteenä”. VBA Byrefin avulla voimme kohdistaa alkuperäiseen arvoon muuttamatta muuttujiin tallennettua arvoa. Toisin sanoen, siirrämme arvon suoraan alaproseduureille sen sijaan, että käydä läpi säännölliset menetelmät arvojen määrittelemiseksi ja osoittamiseksi muuttujille.

VBA ByRef: ssä määrittelemme alaproseduurin sen jälkeen kun olemme asettaneet säännön ByRefille. Tämä voitaisiin tehdä alamenettelyn alapuolella, johon haluamme kirjoittaa koodin. ByRef: ssä määrittelemme uudelleen muuttujan, jota käytetään Sub-menettelyssä. Ja se toimii vain oikein, kun kutsumme ByRef-ehtoa osaprosessissamme.

Kuinka käyttää ByRef-toimintoa Excel VBA: ssa?

Alla on erilaisia ​​esimerkkejä ByRef-toiminnon käyttämisestä Excelissä VBA-koodilla.

Voit ladata tämän VBA ByRef Excel -mallin täältä - VBA ByRef Excel Template

Excel VBA ByRef - esimerkki # 1

Ensinnäkin, opitaan lisäämään ByRef VBA: han, noudata seuraavia vaiheita. Tässä esimerkissä näemme kuinka käyttää VBA ByRef -sovellusta yksinkertaiseen matemaattiseen vähennystyöhön. Tätä varten tarvitsemme moduulin.

Vaihe 1: Joten mene VBA: lle ja avaa moduuli Lisää- valikon vaihtoehdosta alla olevan kuvan mukaisesti.

Vaihe 2: Kirjoita vasta avattuun moduuliin VBA ByRef -alaluokka alla olevan kuvan mukaisesti.

Koodi:

 Sub VBA_ByRef1 () Loppu alaosa 

Vaihe 3: Määrittele nyt muuttuja, sanotaan, että se on A kokonaislukuna.

Koodi:

 Sub VBA_ByRef1 () himmentää kokonaislukuna loppuun alaosa 

Vaihe 4: Anna mikä tahansa luku muuttujalle A. Anna tämä luku olla 1000.

Koodi:

 Sub VBA_ByRef1 () himmentää A kokonaislukuna A = 1000 End Sub 

Vaihe 5: Tulostamme muuttujaan A tallennetun arvon käyttämällä Msgboxia.

Koodi:

 Sub VBA_ByRef1 () himmentää A kokonaislukuna A = 1000 MsgBox A Loppu al 

Vaihe 6: Nyt kokoamme ja ajamme tämän koodin napsauttamalla Toista-painiketta alla olevan kuvan mukaisesti. Saamme viestiruudun, jonka arvo on tallennettu muuttujaan A 1000 .

Sijoita nyt VBA ByRef, luo toinen alaluokka ensimmäisen alle ja määritä määritetty muuttuja ensimmäisestä alaluokasta ByRef: llä.

Vaihe 7: Tällä sallimme toisen alaluokan käyttää muuttujaan A tallennettuja arvoja.

Koodi:

 Sub VBA_ByRef1 () himmentää A kokonaislukuna A = 1000 MsgBox A End Sub Sub VBA_ByRef2 (ByRef A as Integer) End Sub 

Vaihe 8: Soita nyt muuttujalle A täältä uudelleen ja vähennä muuttujan A arvo saadaksesi lähtöarvo samaan muuttujaan. Vähennetään 100 muuttujan A arvosta, jotta saadaan mitattava luku.

Koodi:

 Sub VBA_ByRef1 () himmentää A kokonaislukuna A = 1000 MsgBox A loppuosa Sub VBA_ByRef2 (ByRef A kokonaislukuna) A = A - 100 End Sub 

Vaihe 9: Jos kootamme jokaisen koodivaiheen, huomaamme, että kun kohdistin saavuttaa muuttujan A, näemme, että siihen on tallennettu vain 0.

Vaihe 10: Kun kohdistin saavuttaa End Sub -kohdan, tulosteen arvoksi tulee 1000 viestiruutuun.

Vaihe 11: Se johtuu siitä, että emme ole määrittäneet ByRef- tiedostoa ensimmäiseen alaluokkaan. Nyt annamme alaluokan nimen ennen ensimmäisen alaluokan viestiruudutoimintoa ja katsomme mitä tapahtuu.

Koodi:

 Sub VBA_ByRef1 () himmentää A kokonaislukuna A = 1000 VBA_ByRef2 A MsgBox A End Sub Sub VBA_ByRef2 (ByRef A as Integer) A = A - 100 End Sub 

Vaihe 12: Ja nyt suorita koko koodi uudelleen. Nähdään, että toinen arvo, joka on tallennettu muuttujaan A, kun 100, vähennettiin ensimmäisestä arvosta 1000. Tuloksena saimme lähtösanoman 900.

Vaihe 13: Tämä on ByRefin käytön tärkein etu. Meidän ei tarvitse määritellä useita muuttujia yhdelle työlle. Vain yksi muuttuja riittää suorittamaan koko tehtävän eri tavoin. Voimme käyttää useampaa kuin yhtä ByRef-moduulia yhdessä moduulissa.

Perustelemme ymmärtämämme lisäämällä toinen ByRef samaan moduuliin.

Koodi:

 Sub VBA_ByRef1 () himmentää A kokonaislukuna A = 1000 VBA_ByRef2 A MsgBox A Sub Sub Sub VBA_ByRef2 (ByRef A as Integer) A = A - 100 End Sub Sub VBA_ByRef3 (ByRef A as Integer) End Sub 

Vaihe 14: Käytämme kertolaskua tässä alaluokassa.

Koodi:

 Sub VBA_ByRef1 () himmentää A kokonaislukuna A = 1000 VBA_ByRef2 A MsgBox A Sub Sub Sub VBA_ByRef2 (ByRef A as Integer) A = A - 100 End Sub Sub VBA_ByRef3 (ByRef A as Integer) A = A * 2 End Sub 

Vaihe 15: Käännä ja suorita koodi uudelleen. Nähdään, että yllä olevista vaiheista saatu arvo 900: na kerrotaan nyt 2: lla, jotta saadaan 1800 tulosteena.

Excel VBA ByRef - esimerkki 2

Tässä esimerkissä näemme kuinka ByRef toimii muun tyyppisten kokonaislukujen kanssa.

Vaihe 1: Avaa moduuli ja kirjoita alaluokka alla olevan kuvan mukaisesti.

Koodi:

 Sub VBA_ByRef4 () End Sub 

Vaihe 2: Määritä muuttuja A nyt kaksoisiksi. Tämän avulla voimme käyttää desimaaliarvoja.

Koodi:

 Sub VBA_ByRef4 () himmentää A: n kaksoispäätä 

Vaihe 3: Määritä mahdollinen desimaaliarvo muuttujalle A.

Koodi:

 Sub VBA_ByRef4 () Himmennä A Kuten Tupla A = 1, 23 Loppu Sub 

Vaihe 4: Käytä nyt uudelleen viestiruutua nähdäksesi muuttujaan A tallennetun arvon.

Koodi:

 Sub VBA_ByRef4 () himmentää A kuin kaksinkertainen A = 1, 23 MsgBox A Loppu alaosa 

Nyt jos suoritamme koodin, saamme tulosteen 1, 23.

Vaihe 5: Eri tavalla käytämme Function-funktiota määrittelemään ByRef kaksinkertaiseksi muuttujan A kanssa.

Koodi:

 Sub VBA_ByRef4 () himmentää A kuin kaksinkertainen A = 1, 23 MsgBox A Loppu-alatoiminto AddTwo (ByRef A kuin kaksinkertainen) kaksoispäätefunktiona 

Vaihe 6: Lisää nyt mikä tahansa luku muuttujaan A. Oletetaan, että se on 10.

Koodi:

 Sub VBA_ByRef4 () himmentää A kuin kaksinkertainen A = 1, 23 MsgBox A Loppu alatoiminto AddTwo (ByRef A kuin kaksinkertainen) kuin kaksinkertainen A = A + 10 lopputoiminto 

Vaihe 7: Ja käytä uudelleen tätä määriteltyä ByRef-toimintoa ensimmäisessä alaluokassa. Täällä näemme kaksi viestiruutua, yhden muuttujalle A ja toisen ByRefille.

Koodi:

 Sub VBA_ByRef4 () himmentää A kuin kaksinkertainen A = 1, 23 MsgBox AddTwo (A) MsgBox Loppu alatoiminto AddTwo (ByRef A kuin kaksinkertainen) kuin kaksinkertainen A = A + 10 päätetoiminto 

Vaihe 8: Sama heijastuu myös viestiruutuun.

Vaihe 9: Ja seuraavassa ajossa se antaa lisäarvon 10 alkuperäiseen muuttujan arvoon 1, 23, kuten alla on esitetty.

Näin VBA Byref vie referenssin kerran määriteltyyn arvoon ja täyttää sitten ulostulon uuden ehdon mukaisesti.

Hyödyt ja haitat VBA ByRef

  • Kun kirjoitat suuria koodeja, se säästää paljon aikaa ottamalla huomioon jo määritelty muuttuja, jotta sen arvoa voidaan käyttää uudestaan ​​ja uudestaan.
  • Meidän ei tarvitse määritellä monia muuttujia kaavan mukaan, jota haluamme käyttää.
  • Voimme soveltaa monia ByRef-olosuhteita yhdessä moduulissa häiritsemättä prosessia.
  • Emme voi käyttää VBA Byref -sovellusta monimutkaisessa koodirakenteessa.

Muistettavat asiat

  • Kun tarkastellaan useampaa kuin yhtä ByRef-ehtoa, lähtö perustuu viimeksi määriteltyyn ByRef-alamenettelyyn, mutta se ottaa huomioon myös kaikki aiemmin käytetyt ByRef-ehdot.
  • Lopullisessa ulostulossa on jaksollinen prosessoitu lähtö. Ei vain uusin.
  • Tätä prosessia ei voida suorittaa tallentamalla makro.
  • Näemme muuttujan jokaisessa vaiheessa tallennetun arvon kääntämällä koodin.
  • Kun olet valmis, tallenna Excel-tiedosto Macro Enabled Excel -muodossa, jotta et menetä koodia tulevaisuudessa.

Suositellut artikkelit

Tämä on opas VBA ByRefiin. Tässä keskustellaan siitä, kuinka ByRef-toimintoa voidaan käyttää Excelissä käyttämällä VBA-koodia, sekä käytännön esimerkkejä ja ladattavaa Excel-mallia. Voit myös katsoa seuraavia artikkeleita saadaksesi lisätietoja -

  1. Opas VBA UBound -toimintoon
  2. OFFSET Excel -toiminto (esimerkki, käyttö)
  3. Luo hyperlinkki Excel VBA: han
  4. Kuinka käyttää Excel-täyttökahvaa?

Luokka: