Mis on ByRef VBA-s?

Byref tähistab VBA-s “viitega”. VBA Byrefi abiga saame sihtida algväärtust muutujatesse salvestatud väärtust muutmata. Teisisõnu, edastame väärtuse otse alamprotseduuridele, selle asemel et käia läbi muutujate väärtuste määratlemise ja määramise regulaarsed meetodid.

VBA ByRef-is määratleme alamprotseduuri pärast reegli seadmist ByRefile. Seda võiks teha allprotseduurist, kuhu tahame koodi kirjutada. ByRefis määratleme uuesti muutuja, mida kasutatakse protseduuris Sub. Ja see töötab korralikult ainult siis, kui kutsume oma alamprotsessis ByRefi tingimust.

Kuidas kasutada funktsiooni ByRef Excel VBA-s?

Allpool on toodud erinevad näited ByRef Function'i kasutamiseks Excelis, kasutades VBA-koodi.

Selle VBA ByRef Exceli malli saate alla laadida siit - VBA ByRef Exceli mall

Excel VBA ByRef - näide nr 1

Esiteks andke meile teada, kuidas sisestada ByRef VBA-sse, selleks toimige järgmiselt. Selles näites näeme, kuidas kasutada VBA ByRefi lihtsa matemaatilise lahutamise töö jaoks. Selleks oleks meil vaja moodulit.

1. samm: minge VBA-sse ja avage moodul menüü Lisamine kaudu, nagu allpool näidatud.

2. samm: kirjutage äsja avatud moodulis VBA ByRefi alamkategooria, nagu allpool näidatud.

Kood:

 Alam VBA_ByRef1 () lõpp alam 

3. samm: määratlege nüüd muutuja, ütleme, et see on A kui täisarv.

Kood:

 Alam VBA_ByRef1 () Hämardatakse täisarvuna Lõpp-alam 

4. samm: andke muutujale A suvaline arv. Olgu see arv 1000.

Kood:

 Alam VBA_ByRef1 () Hämardatakse täisarvuna A = 1000 Lõpp alam 

5. samm: Muutujasse A salvestatud väärtuse printimiseks kasutaksime Msgboxi.

Kood:

 Alam VBA_ByRef1 () Hämardatakse täisarvuna A = 1000 MsgBox A Lõpp-alam 

6. samm: nüüd kompileerime ja käivitame selle koodi, klõpsates nuppu Esita, nagu allpool näidatud. Saame teatevälja, mille muutuja A väärtus on 1000 .

Nüüd rakendage VBA ByRef, looge esimese allpool veel üks alamkategooria ja määrake esimesest alamkategooriast määratletud muutuja koos ByRefiga.

7. samm: selleks lubame teisel alamkategoorial kasutada muutuja A salvestatud väärtusi.

Kood:

 Alam VBA_ByRef1 () Tühjendatakse A täisarvuna A = 1000 MsgBox A Lõpp Alam alam VBA_ByRef2 (ByRef A kui täisarv) End Sub 

8. samm. Helistage siin uuesti muutujale A ja lahutage kõik muutuja A väärtused, et saada väljundväärtus samas muutumises. Lahutame muutuja A väärtusest 100, nii et saaksime mõõdetava arvu.

Kood:

 Alam VBA_ByRef1 () Tühjenda A täisarvuna A = 1000 MsgBox A lõpp-alam-alam VBA_ByRef2 (ByRef A kui täisarv) A = A - 100 lõpp-alamosa 

9. samm: Kui me kompileerime koodi iga sammu, märkame, et kui kursor jõudis muutuja A-ni, näeme, et sinna on salvestatud ainult 0.

10. samm: kui kursor jõuab lõpp-alammenüüsse, kuvatakse väljund sõnumikasti 1000-na.

11. samm: Põhjus on see, et me pole ByRefi esimesse alamkategooriasse määranud. Nüüd määrame alamkategooria nime enne esimese alamkategooria sõnumikasti funktsiooni ja vaatame, mis juhtub.

Kood:

 Alam VBA_ByRef1 () Tühjendatakse A täisarvuna A = 1000 VBA_ByRef2 A MsgBox Lõpp-alam alam VBA_ByRef2 (ByRef A kui täisarv) A = A - 100 lõpp-alam 

12. samm: ja nüüd käivitage täielik kood uuesti. Näeme, et teine ​​väärtus, mis on salvestatud muutujasse A kui 100, lahutati esimesest väärtusest 1000. Selle tulemusel saime väljundsõnumi väärtuseks 900.

13. samm: see on ByRefi kasutamise peamine eelis. Me ei pea ühe töö jaoks määratlema mitut muutujat. Kogu ülesande erineval viisil täitmiseks piisab ühest muutujast. Ühes moodulis saame kasutada rohkem kui ühte ByRefi.

Mõistmise õigustamiseks lisame samasse moodulisse veel ühe ByRefi.

Kood:

 Alam VBA_ByRef1 () Hämardatakse täisarvuna A = 1000 VBA_ByRef2 A MsgBox Alam alam-alam VBA_ByRef2 (ByRef A kui täisarv) A = A - 100 End alam-alam VBA_ByRef3 (ByRef A kui täisarv) End Sub 

14. samm: kasutage selles alamkategoorias korrutamist.

Kood:

 Alam VBA_ByRef1 () Hämardatakse täisarvuna A = 1000 VBA_ByRef2 A MsgBox Lõpp-alamsub VBA_ByRef2 (ByRef A kui täisarv) A = A - 100 lõpp-alamsub VBA_ByRef3 (ByRef A-täisarvuna) A = A * 2 lõpp-alam 

15. samm: uuesti kompileerige ja käivitage kood uuesti. Näeme, et ülaltoodud etappidest saadud väärtus 900 korrutatakse nüüd kahega, et saada väljundiks 1800.

Excel VBA ByRef - näide nr 2

Selles näites näeme, kuidas ByRef töötab muud tüüpi täisarvudega.

1. samm: avage moodul ja kirjutage alamkategooria, nagu allpool näidatud.

Kood:

 Alam VBA_ByRef4 () lõpp alam 

2. samm: määratlege muutuja A kahekordse väärtusega. See võimaldab meil kasutada kümnendväärtusi.

Kood:

 Alam VBA_ByRef4 () Hämardatakse kui topeltotsaline alam 

3. samm: määrake muutujale A mis tahes koma.

Kood:

 Alam VBA_ByRef4 () Tühi A kui kahekordne A = 1, 23 Lõpeta alam 

4. samm: kasutage uuesti sõnumikasti, et näha muutuja A väärtust.

Kood:

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

Kui kood käivitatakse, saaksime väljundina 1, 23.

5. samm. Muul viisil kasutame funktsiooni Funktsiooni, et määratleda ByRef muutujaga A topelt.

Kood:

 Alam VBA_ByRef4 () Hämardatakse kui topelt A = 1, 23 MsgBox A Lõpp-alamfunktsioon AddTwo (ByRef A kui topelt) kui topeltotsa funktsioon 

6. samm: lisage muutujale A suvaline arv. Ütleme, et see on 10.

Kood:

 Alam VBA_ByRef4 () Hämardatakse kui kahekordne A = 1, 23 MsgBox A Lõpp-alamfunktsioon AddTwo (ByRef A kui kahekordne) kui kahekordne A = A + 10 lõppfunktsioon 

7. samm: ja kasutage uuesti seda määratletud ByRefi funktsiooni esimeses alamkategoorias. Siin näeme kahte sõnumikasti, üks muutuja A jaoks ja teine ​​ByRefi jaoks.

Kood:

 Sub VBA_ByRef4 () Dim A kui topelt A = 1, 23 MsgBox AddTwo (A) MsgBox A Lõpp alamfunktsioon AddTwo (ByRef A kui Double) Kuna Double A = A + 10 End Function 

8. samm: sama kajastub ka sõnumikastis.

9. samm: ja järgmisel töötsükkel annab see lisandväärtuse 10 algsesse muutuja väärtusesse 1, 23, nagu allpool näidatud.

Nii võtab VBA Byref viite üks kord määratletud väärtusele ja täidab väljundi vastavalt uuele tingimusele.

VBA ByRefi plussid ja miinused

  • Suurte koodide kirjutamine säästab palju aega, kui arvestada juba määratletud muutujaga, nii et selle väärtust saab ikka ja jälle kasutada.
  • Me ei pea määratlema paljusid muutujaid valemi kohta, mida soovime rakendada.
  • Saame rakendada paljusid ByRefi tingimusi ühes moodulis, isegi protsessi häirimata.
  • Me ei saa VBA Byrefi kasutada keerulises koodistruktuuris.

Asjad, mida meeles pidada

  • Kui kaaluda rohkem kui ühte ByRefi tingimust, põhineb väljund viimasel meie määratletud alamprotseduuril ByRef, kuid see võtab arvesse ka kõiki varem kasutatud ByRefi tingimusi.
  • Lõplikul väljundil on järjestikune töödeldud väljund. Mitte ainult viimane.
  • Seda protsessi ei saa makro salvestamisega teha.
  • Koodi kompileerimise abil näeme muutuja igas etapis talletatud väärtust.
  • Kui see on tehtud, salvestage Exceli fail makrofunktsioonidena lubatud Exceli vormingus, et me ei kaotaks tulevikus koodi.

Soovitatavad artiklid

See on VBA ByRefi juhend. Siin arutleme, kuidas kasutada ByRefi funktsiooni Excelis, kasutades VBA-koodi koos praktiliste näidete ja allalaaditava excelimalliga. Lisateabe saamiseks võite vaadata ka järgmisi artikleid -

  1. VBA püsiühenduse funktsiooni juhend
  2. OFFSET Exceli funktsioon (näide, kasutusalad)
  3. Looge hüperlink Excel VBA-s
  4. Kuidas kasutada Exceli täitmiskäepidet?

Kategooria: