VBA ByRef | எக்செல் விபிஏ பைரெஃப் செயல்பாட்டைப் பயன்படுத்தி பாஸ் வாதம்

எக்செல் வி.பி.ஏ பைரெஃப் செயல்பாடு வாதம்

VBA இல் ByRef எனப்படும் ஒரு செயல்பாடு குறிப்பு மூலம் எங்களுடைய குறியீட்டில் உள்ள எந்தவொரு வாதங்களுக்கும் ஒரு குறிப்பை நாங்கள் வழங்குகிறோம், நாங்கள் தனிப்பயன் செயல்பாடுகளைச் செய்யும்போது, ​​பைரெஃப் செயல்பாட்டைப் பயன்படுத்துவதற்கு முன்பு முன்னர் வரையறுக்கப்பட்ட எந்த மாறியின் மதிப்பையும் பயன்படுத்த விரும்புகிறோம், பயன்படுத்த தொடரியல் செயல்பாட்டு செயல்பாடு-பெயர் (தரவு வகையாக ByRef மாறி).

பைரெப்பைப் பயன்படுத்துவதன் மூலம் மாறி மதிப்பை மாற்றாமல் அசல் மாறி மதிப்பை சுட்டிக்காட்டலாம். இது மாறி மதிப்பை நேரடியாக VBA துணை செயல்முறை அல்லது VBA செயல்பாட்டிற்கு அனுப்புவது போன்றது.

VBA ByRef வாதத்தைப் பயன்படுத்தி வாதத்தை எவ்வாறு அனுப்புவது?

இந்த VBA ByRef Excel வார்ப்புருவை இங்கே பதிவிறக்கம் செய்யலாம் - VBA ByRef Excel வார்ப்புரு

எடுத்துக்காட்டு # 1

எடுத்துக்காட்டாக, கீழே உள்ள VBA குறியீட்டைப் பாருங்கள்.

குறியீடு 1:

 துணை நடைமுறை 1 () மங்கலான k ஆக முழு எண் k = 50 செயல்முறை 2 k MsgBox k முடிவு துணை 

குறியீடு 2:

 துணை செயல்முறை 2 (ByRef k As Integer) k = k + 10 End Sub 

முதல் நடைமுறையில், “k” என்ற மாறியை முழு எண் என அறிவித்துள்ளேன்.

இந்த மாறிக்கான மதிப்பை 50 என ஒதுக்கியுள்ளேன்.

அதன் பிறகு நான் ஒரு புதிய வரியைச் சேர்த்துள்ளேன், அதாவது.

செயல்முறை 2 கி

இது இரண்டாவது நடைமுறை பெயர். இந்த நடைமுறையில், அடைப்புக்குறிக்குள் உள்ள மாறியை VBA இல் சரம் என அறிவித்தேன், ஆனால் நான் “ByRef” என்ற வார்த்தையைப் பயன்படுத்தினேன்.

 ByRef k as Integer 

இங்கே நான் "k" என்ற மாறியின் மதிப்பை ஒதுக்கியுள்ளேன்

k = k + 10

சரி, இப்போது நான் F8 விசையை அழுத்துவதன் மூலம் படிப்படியாக குறியீட்டை இயக்குவேன்.

F8 விசையை இன்னும் இரண்டு முறை அழுத்தி, “k” என்ற மாறியின் மதிப்பைக் காண மாறி “k” இல் கர்சரை வைக்கவும்.

மதிப்பை 50 என ஒதுக்கியுள்ளதால், அது மதிப்பை 50 ஆகக் காட்டுகிறது. இப்போது அது வரியை முன்னிலைப்படுத்தியுள்ளது செயல்முறை 2 கி இது இரண்டாவது செயல்முறை பெயர்.

நான் இப்போது எஃப் 8 விசையை அழுத்தினால், அது தற்போதைய நடைமுறையிலிருந்து வெளியேறி இரண்டாவது நடைமுறைக்கு செல்லும்.

இப்போது நாம் பைரெஃப் வார்த்தையைப் பயன்படுத்தியதால், மேலே உள்ள நடைமுறையிலிருந்து மாறி “கே” மதிப்பைக் கொண்டு சென்றது.

F8 விசையை இரண்டு முறை அழுத்தினால் அது முந்தைய துணை நடைமுறைக்குச் செல்லும். இரண்டாவது நடைமுறையில் நீங்கள் கவனித்தால், நான் சூத்திரத்தை k = k + 10 ஆகப் பயன்படுத்தினேன். அதாவது “k” மதிப்பு 50 ஆக இருந்தால், அதற்கு மேலும் 10 ஐ சேர்க்கிறது, அதாவது மொத்தம் 60.

இப்போது குறியீடு முதல் நடைமுறையில் இயங்குகிறது, இந்த நடைமுறையில் “k” மதிப்பு 50 ஆகும். ஆனால் F8 விசையை அழுத்தி ஒரு செய்தியை பெட்டியில் காண்க.

இந்த நடைமுறையில் 50 இன் இயல்புநிலை மதிப்புக்கு பதிலாக 60 என முடிவு கிடைத்தது.

எங்களுக்கு 60 கிடைத்ததற்கான காரணம், ஏனெனில் இரண்டாவது நடைமுறையில் “பைரெஃப்” ஐப் பயன்படுத்தினோம், எனவே இது சமன்பாட்டின் முடிவை (k = k + 10) தற்போதைய நடைமுறைக்கு கொண்டு சென்றது.

இங்கே முதல் மாறி “k” மதிப்பு 50 ஆகவும், இரண்டாவது செயல்முறை மாறி “k” மதிப்பு k + 10 அதாவது 60 ஆகவும் இது முதல் நடைமுறைக்கு கொண்டு செல்லப்படுகிறது.

முதல் நடைமுறையில் “k” என்ற மாறியின் அசல் மதிப்பு 50 ஆக இருந்தது, எனவே By Ref ஆனது k = k + 10 அதாவது k = 50 +10 = 60 என்ற சமன்பாட்டை இயக்குவதன் மூலம் அசல் மதிப்பை 50 முதல் 60 ஆக மாற்றியுள்ளது.

எடுத்துக்காட்டு # 2

இப்போது மேலும் ஒரு உதாரணத்தைப் பாருங்கள்.

குறியீடு 1:

 துணை பி 1 () மங்கலான மைநம்பர் நீண்ட மைநம்பர் = 1 அழைப்பு மாற்றம்_பைரெஃப் (மைநம்பர்) 'சேஞ்ச்_பைரெஃப் நடைமுறையால் மைநம்பர் மாற்றப்பட்டுள்ளது MsgBox "எனது எண் இப்போது:" & மைநம்பர் எண்ட் சப் 

குறியீடு 2:

 துணை மாற்றம்_பைரெஃப் (பைரெஃப் நியூநம்பர் நீண்டது) நியூநம்பர் = 14 முடிவு துணை 

இது முந்தைய குறியீட்டைப் போலவே செயல்படுகிறது.

ஆரம்பத்தில், “MyNumber” என்ற மாறியின் மதிப்பு 1. பின்னர் கீழேயுள்ள நடைமுறையை அதன் பெயரால் அழைக்கிறோம்

 Change_ByRef (MyNumber) ஐ அழைக்கவும்

அந்த நடைமுறையில், மாறியின் மதிப்பு 14 ஆகும்.

எனவே, இது முந்தைய நடைமுறைக்குச் செல்லும்போது, ​​அது புதிய மதிப்பை மாறிக்கு 14 ஆக ஒதுக்கும்.