Kaj je ByRef v VBA?
Byref v VBA pomeni „Po referencah“. S pomočjo VBA Byref lahko ciljno usmerimo prvotno vrednost, ne da bi spremenili vrednost, shranjeno v spremenljivkah. Z drugimi besedami, vrednost bomo neposredno prenesli v postopke Sub, namesto da bi šli skozi običajne metode določanja in dodeljevanja vrednosti spremenljivkam.
V VBA ByRef določimo podproces po tem, ko smo postavili pravilo za ByRef. To bi lahko storili pod podpostopkom, kjer želimo napisati kodo. V ByRef smo na novo definirali spremenljivko, ki se uporablja v podpostopku. Pravilno deluje le, ko v našem podprocesu pokličemo stanje ByRef.
Kako uporabljati funkcijo ByRef v Excelu VBA?
Spodaj so različni primeri uporabe funkcije ByRef v Excelu z uporabo kode VBA.
To predlogo VBA ByRef Excel lahko prenesete tukaj - Predloga VBA ByRef ExcelExcel VBA ByRef - Primer 1
Najprej se naučimo, kako vstaviti ByRef v VBA, za to sledite spodnjim korakom. V tem primeru bomo videli, kako uporabiti VBA ByRef za preprosto matematično odštevanje. Za to bi potrebovali modul.
1. korak: Torej, pojdite na VBA in odprite modul iz možnosti Vstavi meni, kot je prikazano spodaj.
2. korak: V novo odprti modul napišite podkategorijo VBA ByRef, kot je prikazano spodaj.
Koda:
Sub VBA_ByRef1 () Konec Sub
Korak 3: Zdaj določite spremenljivko, recimo, da je A kot celo število.
Koda:
Pod VBA_ByRef1 () Dim A kot celoten konec Pod
4. korak: poljubno številko dodelite spremenljivki A. Naj bo ta številka 1000.
Koda:
Pod VBA_ByRef1 () Dim A kot celo število A = 1000 končni sub
5. korak: Za tiskanje vrednosti, shranjene v spremenljivki A, bi uporabili Msgbox.
Koda:
Pod VBA_ByRef1 () Dim A kot celo število A = 1000 MsgBox A Končni pod
6. korak: Zdaj sestavimo in zaženemo to kodo s klikom na gumb Predvajaj, kot je prikazano spodaj. Dobili bomo polje s sporočilom z vrednostjo, shranjeno v spremenljivki A, kot 1000 .
Zdaj uporabite VBA ByRef, ustvarite drugo podkategorijo pod prvo in dodelite definirano spremenljivko iz prve podkategorije z ByRef.
7. korak: S tem bomo drugi podkategoriji omogočili uporabo vrednosti, shranjenih v spremenljivki A.
Koda:
Sub VBA_ByRef1 () Dim A kot celoten A = 1000 MsgBox A End Sub Sub VBA_ByRef2 (ByRef A kot celo število) End Sub
Korak 8: Zdaj pokličite spremenljivko A tukaj in odštejte katero koli vrednost od spremenljivke A, da dobite izhodno vrednost v isti spremenljivki. Odštejemo vrednost 100 spremenljivke A, da dobimo merljivo število.
Koda:
Pod VBA_ByRef1 () Dim A kot celoten A = 1000 MsgBox A konec Sub Sub VBA_ByRef2 (ByRef A kot celo število) A = A - 100 konec pod
Korak 9: Zdaj, če sestavimo vsak korak kode, bomo opazili, da je, ko je kazalec dosegel spremenljivko A, videli, da je v njej shranjenih le 0.
Korak 10: Ko je kazalec dosegel End Sub, bomo dobili izhod v polju s sporočilom kot 1000.
11. korak: Ker ByRef nismo dodelili prvi podkategoriji. Zdaj bomo podkategoriji dodelili funkcijo polja za sporočila prve podkategorije in videli, kaj se bo zgodilo.
Koda:
Pod VBA_ByRef1 () Dim A kot celoten A = 1000 VBA_ByRef2 A MsgBox A konec Sub Sub VBA_ByRef2 (ByRef A kot celoten) A = A - 100 konec pod
12. korak: Zdaj zaženite celotno kodo še enkrat. Videli bomo, da je druga vrednost, ki je shranjena v spremenljivki A, odšteta od prve vrednosti 1000. Kot rezultat smo dobili izhodno sporočilo kot 900.
Korak 13: To je glavna prednost uporabe ByRef-a. Ni nam treba določiti več spremenljivk za posamezno opravilo. Za izvedbo celotne naloge na različne načine je dovolj le ena spremenljivka. V enem modulu lahko uporabimo več kot en ByRef.
Za utemeljitev tega, kar smo razumeli, v isti modul dodamo še en ByRef.
Koda:
Pod VBA_ByRef1 () Dim A kot celoten A = 1000 VBA_ByRef2 A MsgBox A konec Sub Sub VBA_ByRef2 (ByRef A kot celištevec) A = A - 100 konec Sub Sub VBA_ByRef3 (ByRef A kot celo število) End Sub
14. korak: V tej podkategoriji uporabimo množenje.
Koda:
Pod VBA_ByRef1 () Dim A kot celoten A = 1000 VBA_ByRef2 A MsgBox A konec Sub Sub VBA_ByRef2 (ByRef A kot celištevec) A = A - 100 konec Sub Sub VBA_ByRef3 (ByRef A kot celoten) A = A * 2 končni pod
15. korak: Znova sestavite in zaženite kodo. Videli bomo, da se vrednost, pridobljena iz zgornjih korakov, ko je 900, pomnoži z 2, da dobimo 1800 kot proizvod.
Excel VBA ByRef - primer # 2
V tem primeru bomo videli, kako ByRef deluje z drugimi vrstami celih števil.
1. korak: Odprite modul in napišite podkategorijo, kot je prikazano spodaj.
Koda:
Sub VBA_ByRef4 () Konec Sub
2. korak: Spremenite spremenljivko A kot dvojno. To nam bo omogočilo uporabo decimalnih vrednosti.
Koda:
Sub VBA_ByRef4 () Dim A kot dvojni konec Sub
3. korak: Vsaki decimalni vrednosti dodelite spremenljivko A.
Koda:
Sub VBA_ByRef4 () Dim A kot dvojni A = 1, 23 končni sub
4. korak: Zdaj uporabite polje s sporočilom, da vidite vrednost, shranjeno v spremenljivki A.
Koda:
Sub VBA_ByRef4 () Dim A kot dvojni A = 1, 23 MsgBox A End Sub
Če zaženemo kodo, bi dobili 1, 23 kot izhod.
5. korak: Na drugačen način bomo s funkcijo definirali ByRef kot dvojno s spremenljivko A.
Koda:
Pod VBA_ByRef4 () Dim A kot dvojni A = 1, 23 MsgBox A končna podfunkcija AddTwo (ByRef A kot dvojna) kot funkcija dvojnega konca
6. korak: Zdaj dodajte poljubno številko spremenljivki A. Recimo, da je 10.
Koda:
Pod VBA_ByRef4 () Dim A kot dvojni A = 1, 23 MsgBox A konec podfunkcije AddTwo (ByRef A kot dvojni) kot dvojni A = A + 10 končna funkcija
7. korak: In ponovno uporabite to definirano funkcijo ByRef v prvi podkategoriji. Tu bomo videli dva polja s sporočilom, eno za spremenljivko A in drugo za ByRef.
Koda:
Pod VBA_ByRef4 () Dim A kot dvojni A = 1, 23 MsgBox AddTwo (A) MsgBox A konec podfunkcije AddTwo (ByRef A kot dvojno) Kot dvojni A = A + 10 končna funkcija
8. korak: Enako bi se odrazilo tudi v polju s sporočili.
Korak 9: V naslednji izvedbi bo dal dodano vrednost 10 v prvotno vrednost spremenljivke 1, 23, kot je prikazano spodaj.
Tako VBA Byref enkrat sprejme referenčno vrednost, definirano enkrat, in nato napolni izhod po novem pogoju.
Prednosti in slabosti VBA ByRef
- Pri pisanju velikih kod prihranite veliko časa z upoštevanjem že definirane spremenljivke, tako da lahko njeno vrednost uporabljamo vedno znova.
- Ni nam treba definirati veliko spremenljivk glede na formulo, ki jo želimo uporabiti.
- V enem modulu lahko uporabimo številne pogoje ByRef, ne da bi pri tem celo motili postopek.
- VBA Byref ne moremo uporabljati v zapleteni strukturi kode.
Stvari, ki jih je treba zapomniti
- Pri obravnavi več kot enega pogoja ByRef bo izhod temelji na zadnjem podpostopku ByRef, ki smo ga definirali, upošteva pa tudi vse prej uporabljene pogoje ByRef.
- Končni rezultat bo imel zaporedno obdelani izhod. Ne le najnovejšega.
- Tega postopka ni mogoče izvesti s snemanjem makra.
- Vrednost, shranjeno v vsaki stopnji spremenljivke, lahko vidimo, če sestavimo kodo.
- Ko končate, shranite datoteko excel kot format excel za makro omogočeno, da v prihodnosti ne bomo izgubili kode.
Priporočeni članki
To je vodnik za VBA ByRef. Tukaj smo razpravljali o uporabi funkcije ByRef v Excelu z uporabo kode VBA skupaj s praktičnimi primeri in naložljivo predlogo excela. Če želite izvedeti več, si oglejte tudi naslednje članke -
- Vodnik po funkciji VBA UBound
- OFFSET Excel funkcija (Primer, uporabe)
- Ustvari hiperpovezavo v Excelu VBA
- Kako uporabljati ročaj za polnjenje Excela?