VBA ByRef | Iziet argumentu, izmantojot funkciju Excel VBA ByRef

Excel VBA ByRef funkcijas arguments

ByRef VBA ir funkcija, ko sauc par atsauci, kur mēs sniedzam atsauci uz visiem mūsu koda argumentiem, kad veicam pielāgotas funkcijas un vēlamies izmantot jebkura mainīgā vērtību, kas iepriekš definēta pirms funkcijas, kuru izmantojam ByRef funkciju, izmantotā sintakse ir vienkārša kā Funkcijas Funkcijas nosaukums (ByRef mainīgais kā datu tips).

Izmantojot Byref, mēs varam norādīt uz sākotnējo mainīgo vērtību, nemainot mainīgā vērtību. Tas ir tāpat kā mainīgās vērtības nodošana tieši VBA apakšprocedūrai vai funkcijai VBA.

Kā nodot argumentu, izmantojot VBA ByRef argumentu?

Šo VBA ByRef Excel veidni varat lejupielādēt šeit - VBA ByRef Excel veidne

1. piemērs

Piemēru skatiet zemāk redzamajā VBA kodā.

Kods1:

 Apakšprocedūra1 () Dim k As Integer k = 50 Procedūra2 k MsgBox k End Sub 

Kods2:

 Apakšprocedūra2 (ByRef k kā veselais skaitlis) k = k + 10 Beigu apakšgrupa 

Pirmajā procedūrā mainīgo “k” esmu deklarējis kā veselu skaitli.

Tad šim mainīgajam esmu piešķīris vērtību 50.

Pēc tam es esmu pievienojis jaunu rindu, ti

Procedūra2 k

Šis ir otrais procedūras nosaukums. Šajā procedūrā es esmu deklarējis mainīgo iekavās kā virkni VBA, bet esmu izmantojis vārdu “ByRef”.

 ByRef k kā vesels skaitlis 

Šeit es piešķiru mainīgā “k” vērtību kā

k = k + 10

Labi, tagad es palaidīšu kodu soli pa solim, nospiežot taustiņu F8.

Nospiediet taustiņu F8 vēl divas reizes un novietojiet kursoru uz mainīgā “k”, lai redzētu mainīgā “k” vērtību.

Tā kā mums ir piešķirta vērtība kā 50, tā parāda vērtību kā 50. Tagad tas ir izcēlis rindiņu Procedūra2 k, kas ir otrais procedūras nosaukums.

Ja es tagad nospiedīšu taustiņu F8, tas izies no pašreizējās procedūras un pāriet uz otro procedūru.

Tā kā mēs esam izmantojuši ByRef vārdu, tam bija mainīgās vērtības “k” no iepriekš minētās procedūras.

Divreiz nospiediet taustiņu F8, lai atgrieztos iepriekšējā apakšprocedūrā. Ja pamanāt, ka otrajā procedūrā es esmu izmantojis formulu kā k = k + 10, ti, “k” vērtība ir 50, tad kopā pieskaita vēl 10, ti, 60.

Tagad kods darbojas pirmajā procedūrā, un šajā procedūrā mainīgā “k” vērtība ir 50. Bet nospiediet taustiņu F8 un rezultātu redziet ziņojumu lodziņā.

Šajā procedūrā rezultāts bija 60, nevis noklusējuma vērtība 50.

Iemesls, kāpēc mēs saņēmām 60, jo otrajā procedūrā mēs izmantojām “ByRef”, tāpēc pašreizējai procedūrai tika piešķirts vienādojuma rezultāts (k = k + 10).

Šeit pirmā mainīgā “k” vērtība ir 50, bet otrajā procedūrā mainīgā “k” vērtība ir k + 10, ti, 60, kas tiek pārnesta uz pirmo procedūru.

Pirmajā procedūrā mainīgā “k” sākotnējā vērtība bija 50, tāpēc By Ref ir mainījis sākotnējo vērtību no 50 uz 60, izpildot vienādojumu k = k + 10, ti, k = 50 +10 = 60.

2. piemērs

Tagad apskatiet vēl vienu piemēru.

1. kods:

 P1 apakškopa () Dim MyNumber As Long MyNumber = 1 Call Change_ByRef (MyNumber) 'Manu numuru maina procedūra Change_ByRef MsgBox "Mans numurs ir tagad:" & Mana numura beigu apakšnodaļa 

2. kods:

 Sub Change_ByRef (ByRef NewNumber As Long) NewNumber = 14 Beigas Sub 

Tas darbojas tieši tāpat kā iepriekšējais kods.

Sākotnēji mainīgā “MyNumber” vērtība ir 1. Tad mēs saucam šo procedūru ar tā nosaukumu

 Zvanīt Change_ByRef (MyNumber)

Šajā procedūrā mainīgā vērtība ir 14.

Tātad, atgriežoties pie iepriekšējās procedūras, tā mainīgajam piešķirs jaunu vērtību kā 14.


$config[zx-auto] not found$config[zx-overlay] not found