Mi a ByRef a VBA-ban?

A Byref a VBA-ban „By Reference” -ot jelent. A VBA Byref segítségével az eredeti értéket megcélozhatjuk anélkül, hogy a változókban tárolt értéket megváltoztatnánk. Más szavakkal, az értéket közvetlenül a Sub eljárásoknak adjuk át, ahelyett, hogy a változók értékének meghatározására és hozzárendelésére szolgáló szokásos módszereken haladnánk.

A VBA ByRef-ben az al-eljárást definiáljuk, miután a ByRef-re szabályt állítottunk be. Ezt meg lehet tenni azon alrendszer alatt, ahol a kódot meg akarjuk írni. A ByRef-ben újradefiniáljuk a Sub eljárásban használt változót. És csak akkor működik megfelelően, ha a ByRef feltételt nevezzük alfolyamatunkban.

Hogyan lehet használni a ByRef függvényt az Excel VBA-ban?

Az alábbiakban bemutatjuk azokat a különféle példákat, amelyekkel a ByRef Function használható Excelben, VBA kód használatával.

Itt letöltheti ezt a VBA ByRef Excel sablont - VBA ByRef Excel sablon

Excel VBA ByRef - 1. példa

Először megtanuljuk, hogyan kell beszúrni a ByRef-et a VBA-ba, ehhez kövesse az alábbi lépéseket. Ebben a példában meglátjuk, hogyan lehet a VBA ByRef-et használni egy egyszerű matematikai kivonáshoz. Ehhez szükség lenne egy modulra.

1. lépés: Tehát ugorjon a VBA-ra, és nyisson meg egy modult a Beszúrás menüből az alább látható módon.

2. lépés: Az újonnan megnyílt modulban írja be a VBA ByRef alkategóriáját az alább látható módon.

Kód:

 Sub VBA_ByRef1 () Sub 

3. lépés: Most definiálj egy változót, mondjuk, hogy egész számként A van.

Kód:

 Sub VBA_ByRef1 () Dim A as Integer End Sub 

4. lépés: Adjon meg tetszőleges számot az A változónak. Legyen ez a szám 1000.

Kód:

 Sub VBA_ByRef1 () Dim A, egész számként = A = 1000 End Sub 

5. lépés: Az A változóban tárolt érték kinyomtatásához az Msgbox-ot használjuk.

Kód:

 Sub VBA_ByRef1 () Dim A egész szám A = 1000 MsgBox A End Sub 

6. lépés: Most összeállítjuk és futtatjuk ezt a kódot a Play gombra kattintva, az alább látható módon. Üzenet mezőt kapunk, amelynek az A változóban tárolt értéke 1000 .

Most alkalmazza a VBA ByRef-et, hozzon létre egy másik alkategóriát az első alatt, és az első alkategóriából definiálja a meghatározott változót a ByRef-rel.

7. lépés: Ezzel megengedjük a második alkategóriának az A. változóban tárolt értékek használatát.

Kód:

 Sub VBA_ByRef1 () Dim A egészként A = 1000 MsgBox A End Sub VBA_ByRef2 (ByRef A egész számként) vége Sub 

8. lépés: Most hívja meg újra az A változót, és vonjon le minden értéket az A változóból, hogy ugyanazon a változón kapjon kimeneti értéket. Vonjuk le a 100-at az A változó értékéből, hogy egy mérhető számot kapjunk.

Kód:

 Sub VBA_ByRef1 () Felfedik A egészként A = 1000 MsgBox A Vége Sub Sub VBA_ByRef2 (ByRef A mint egész szám) A = A - 100 End Sub 

9. lépés: Ha összeállítjuk a kód egyes lépéseit, észrevesszük, hogy amikor a kurzor eléri az A változót, látni fogjuk, hogy csak 0 van benne tárolva.

10. lépés: Amikor a kurzor eléri a Sub Sub végét, a kimenetet 1000-nek fogjuk kapni az üzenet mezőben.

11. lépés: Ennek oka az, hogy mi nem rendeltük a ByRef- et az első alkategóriához. Most az alkategória nevét rendeljük az első alkategória üzenet mezőjének funkciója előtt, és megnézzük, mi fog történni.

Kód:

 Sub VBA_ByRef1 () Dim A egészként A = 1000 VBA_ByRef2 A MsgBox A End Sub Sub VBA_ByRef2 (ByRef A as egész szám) A = A - 100 End Sub 

12. lépés: És most futtassa újra a teljes kódot. Látni fogjuk, hogy a második értéket, amelyet az A változóban tárolunk, mint 100, kivonjuk az első 1000-ből. Ennek eredményeként kaptuk a kimeneti üzenetet 900-nak.

13. lépés: Ez a ByRef használatának fő előnye. Nem kell meghatároznia több változót egyetlen feladathoz. Csak egy változó elegendő az egész feladat különböző módon történő végrehajtásához. Egy modulban egynél több ByRef is használható.

Annak igazolására, amit megértettünk, adjunk hozzá egy újabb ByRef-et ugyanabban a modulban.

Kód:

 Sub VBA_ByRef1 () Dim A egészként A = 1000 VBA_ByRef2 A MsgBox A Sub Sub vége VBA_ByRef2 (ByRef A egész szám) A = A - 100 End Sub sub VBA_ByRef3 (ByRef A egész számként) vége Sub 

14. lépés: Ebben az alkategóriában használjuk a szorzást.

Kód:

 Sub VBA_ByRef1 () Dim A egészként A = 1000 VBA_ByRef2 A MsgBox Vége Sub Sub VBA_ByRef2 (ByRef A egész szám) A = A - 100 vége Sub Sub VBA_ByRef3 (ByRef A egész szám) A = A * 2 End sub 

15. lépés: Fordítsa újra és futtassa újra a kódot. Látni fogjuk, hogy a fenti lépésekből nyert érték 900-ként megszorozzuk 2-vel, így 1800 lesz output.

Excel VBA ByRef - 2. példa

Ebben a példában meglátjuk, hogyan működik a ByRef más egész számokkal.

1. lépés: Nyisson meg egy modult és írja be az alkategóriát az alábbiak szerint.

Kód:

 Sub VBA_ByRef4 () Sub 

2. lépés: Most határozza meg az A változót duplaként. Ez lehetővé teszi számunkra, hogy tizedes értékeket használjunk.

Kód:

 Sub VBA_ByRef4 () Dim A Dupla végű Sub 

3. lépés: Rendeljen bármilyen tizedes értéket az A változóhoz.

Kód:

 Sub VBA_ByRef4 () Dim A A Double A = 1, 23 End Sub 

4. lépés: Most ismét használja az üzenetmezőt az A változóban tárolt érték megtekintéséhez.

Kód:

 Sub VBA_ByRef4 () Dim A, mint dupla A = 1, 23 MsgBox A End Sub 

Most, ha futtatjuk a kódot, akkor 1, 23 lesz kimenet.

5. lépés: Másként fogjuk használni a Function funkciót a ByRef kettősként történő meghatározására az A változóval.

Kód:

 Sub VBA_ByRef4 () Dim A mint kettős A = 1, 23 MsgBox A Vég alfunkció AddTwo (ByRef A mint kettős) mint kettős vég funkció 

6. lépés: Most tegyen bármilyen számot az A változóhoz. Tegyük fel, hogy 10.

Kód:

 Sub VBA_ByRef4 () tompítani A mint dupla A = 1, 23 MsgBox A vége alfunkció hozzáadásaTwo (ByRef A mint dupla) mint dupla A = A + 10 végfunkció 

7. lépés: És ismét használja ezt a meghatározott ByRef funkciót az első alkategóriában. Itt két üzenetmező jelenik meg, az egyik az A változóra, a másik a ByRef számára.

Kód:

 Sub VBA_ByRef4 () Dim A, Dupla A = 1, 23 MsgBox AddTwo (A) MsgBox A Befejezet AddTwo alfunkció (ByRef A kettős formában), Dupla A = A + 10 Végfunkció 

8. lépés: Ugyanez tükröződik az üzenetmezőben is.

9. lépés: És a következő futtatás során 10 hozzáadott értéket ad az eredeti 1, 23 változó értékéhez, az alább látható módon.

Így veszi a VBA Byref az egyszer definiált érték referenciáját, majd kitölti a kimenetet az új feltétel szerint.

Előnyei és hátrányai a VBA ByRef

  • Nagy kódok írásakor sok időt takarít meg, figyelembe véve a már definiált változót, hogy az értéke újra és újra felhasználható legyen.
  • Nem kell sok változót definiálnunk azon képlet alapján, amelyet alkalmazni akarunk.
  • Számos ByRef feltételt alkalmazhatunk egyetlen modulban anélkül, hogy a folyamatot is megzavarnánk.
  • A VBA Byref nem használható komplex kódszerkezetben.

Dolgok, amikre emlékezni kell

  • Ha egynél több ByRef feltételt vesz figyelembe, akkor a kimenet az általunk definiált ByRef utolsó alrendszeren alapul, de figyelembe veszi az összes korábban használt ByRef feltételt.
  • A végső kimenetnek szekvenciálisan feldolgozott kimenete lesz. Nem csak a legújabbat.
  • Ez a folyamat nem hajtható végre a makró rögzítésével.
  • A kód összeállításával láthatjuk a változó minden szakaszában tárolt értéket.
  • Ha kész, mentse el az Excel fájlt Macro Enabled excel formátumban, hogy a jövőben ne veszítsünk el kódot.

Ajánlott cikkek

Ez egy útmutató a VBA ByRef-hez. Itt tárgyaljuk, hogyan lehet a ByRef függvényt használni az Excelben, a VBA kód használatával, valamint a gyakorlati példákat és a letölthető excel sablont. A következő cikkeket is megnézheti további információkért -

  1. Útmutató a VBA hátralevő funkcióhoz
  2. OFFSET Excel függvény (példa, felhasználások)
  3. Hozzon létre hiperhivatkozást az Excel VBA alkalmazásban
  4. Hogyan kell használni az Excel kitöltő fogantyút?

Kategória: