எக்செல் VBA இல் VLOOKUP | VBA இல் VLOOKUP குறியீட்டை எழுதுவது எப்படி?

Vlookup என்பது எக்செல் இல் ஒரு பணித்தாள் செயல்பாடு, ஆனால் இது VBA யிலும் பயன்படுத்தப்படலாம், Vlookup இன் செயல்பாடு VBA மற்றும் பணித்தாள் இரண்டிலும் ஒத்திருக்கிறது, இது ஒரு பணித்தாள் செயல்பாடு என்பதால் VBA இல் Vlookup ஐப் பயன்படுத்துவதற்கான முறை Application.WorksheetFunction முறை மற்றும் வாதங்கள் அப்படியே இருக்கின்றன.

எக்செல் VBA இல் VLOOKUP செயல்பாடு

எக்செல் இல் உள்ள VLOOKUP செயல்பாடு ஒரு வரிசையில் ஒரு மதிப்பைத் தேடவும், அதனுடன் தொடர்புடைய மதிப்பை மற்றொரு நெடுவரிசையிலிருந்து திரும்பவும் பயன்படுத்தப்படுகிறது. தேடலுக்கான மதிப்பு முதல் நெடுவரிசையில் இருக்க வேண்டும். ஒரு துல்லியமான பொருத்தமா அல்லது தோராயமான போட்டியைத் தேடலாமா என்பதையும் குறிப்பிட வேண்டும். பணித்தாள் செயல்பாடு VLOOKUP VBA குறியீட்டில் பயன்படுத்தப்படலாம். செயல்பாடு VBA இல் கட்டமைக்கப்படவில்லை, இதனால் பணித்தாளைப் பயன்படுத்தி மட்டுமே அழைக்க முடியும்.

எக்செல் இல் உள்ள VLOOKUP செயல்பாடு பின்வரும் தொடரியல் உள்ளது:

இதில், தேடல்_ மதிப்பு என்பது தேட வேண்டிய மதிப்பு, அட்டவணை_அர்ரே அட்டவணை, col_index_num என்பது வருவாய் மதிப்பின் நெடுவரிசை எண், வரம்பு_லூக்கப் பொருத்தம் துல்லியமாகவோ அல்லது தோராயமாகவோ இருந்தால் குறிக்கிறது. range_lookup TRUE / FALSE அல்லது 0/1 ஆக இருக்கலாம்.

VBA குறியீட்டில், VLOOKUP செயல்பாட்டை இவ்வாறு பயன்படுத்தலாம்:

Application.WorksheetFunction.vlookup (lookup_value, table_array, col_index_num, range_lookup)

எக்செல் VBA இல் VLookup ஐ எவ்வாறு பயன்படுத்துவது?

எக்செல் VBA இல் VLookup குறியீட்டின் சில எடுத்துக்காட்டுகள் கீழே.

இந்த VLookup ஐ எக்செல் VBA வார்ப்புருவில் பதிவிறக்கம் செய்யலாம் - எக்செல் VBA வார்ப்புருவில் VLookup

எக்செல் VBA எடுத்துக்காட்டு # 1 இல் VLookup குறியீடு

எக்செல் VBA இல் பணித்தாள் செயல்பாட்டை VLOOKUP என்று எவ்வாறு அழைப்போம் என்று பார்ப்போம்.

உங்களிடம் மாணவர்கள் ஐடி, பெயர் மற்றும் அவர்களால் பெறப்பட்ட சராசரி மதிப்பெண்கள் உள்ளன என்று வைத்துக்கொள்வோம்.

இப்போது, ​​ஐடி 11004 உடன் ஒரு மாணவர் பெற்ற மதிப்பெண்களைப் பார்க்க விரும்புகிறீர்கள்.

மதிப்பைத் தேட, பின்வரும் படிகளைப் பின்பற்றவும்:

  • டெவலப்பர் தாவலுக்குச் சென்று விஷுவல் பேசிக் என்பதைக் கிளிக் செய்க.

  • VBA சாளரத்தின் கீழ், செருகு என்பதற்குச் சென்று தொகுதி என்பதைக் கிளிக் செய்க.

  • இப்போது, ​​VBA VLOOKUP குறியீட்டை எழுதவும். பின்வரும் VBA VLOOKUP குறியீட்டைப் பயன்படுத்தலாம்.

துணை vlookup1 ()

மங்கலான மாணவர்_ஐடி நீண்டது

மங்கலான மதிப்பெண்கள் நீண்டது

மாணவர்_ஐடி = 11004

மைரேஞ்ச் = வரம்பை அமைக்கவும் (“பி 4: டி 8”)

மதிப்பெண்கள் = Application.WorksheetFunction.VLookup (மாணவர்_ஐடி, மைரேஞ்ச், 3, தவறு)

முடிவு துணை

முதலாவதாக, மாணவர் ஐடியை வரையறுக்கவும், இது பார்ப்பதற்கான மதிப்பு. எனவே, நாங்கள் வரையறுக்கிறோம்,

மாணவர்_ஐடி = 11004

அடுத்து, மதிப்பு மற்றும் வருவாய் மதிப்பு இருக்கும் வரம்பை நாங்கள் வரையறுக்கிறோம். எங்கள் தரவு B4: D8 கலங்களில் இருப்பதால், ஒரு வரம்பை வரையறுக்கிறோம்- மைரேஞ்ச்:

மைரேஞ்ச் = வரம்பை அமைக்கவும் (“பி 4: டி 8”)

இறுதியாக, பணித்தாள் செயல்பாட்டைப் பயன்படுத்தி VLOOKUP செயல்பாட்டை ஒரு மாறியில் உள்ளிடுகிறோம், பின்வருமாறு குறிக்கிறது:

மதிப்பெண்கள் = Application.WorksheetFunction.VLookup (மாணவர்_ஐடி, மைரேஞ்ச், 3, தவறு)

செய்தி பெட்டியில் மதிப்பெண்களை அச்சிடுவதற்கு, பின்வரும் கட்டளையைப் பயன்படுத்துவோம்:

MsgBox “ஐடி கொண்ட மாணவர்:” & மாணவர்_ஐடி & ”பெற்றது” & மதிப்பெண்கள் & ”மதிப்பெண்கள்”

அது திரும்பும்:

ஐடி பெற்ற மாணவர்: 11004 பேர் 85 மதிப்பெண்கள் பெற்றனர்.

இப்போது, ​​ரன் பொத்தானைக் கிளிக் செய்க.

எக்செல் தாளில் ஒரு செய்தி பெட்டி தோன்றும் என்பதை நீங்கள் கவனிப்பீர்கள்.

எக்செல் VBA எடுத்துக்காட்டு # 2 இல் VLookup குறியீடு

ஊழியர்களின் பெயர்கள் மற்றும் அவர்களின் சம்பளத்தின் தரவு உங்களிடம் உள்ளது என்று வைத்துக்கொள்வோம். இந்தத் தரவு B மற்றும் C நெடுவரிசைகளுக்கு வழங்கப்பட்டுள்ளது. இப்போது, ​​நீங்கள் ஒரு VBA VLOOKUP குறியீட்டை எழுத வேண்டும், இது ஒரு கலத்தில் பணியாளரின் பெயரைக் கொடுத்தது, F4, ஊழியரின் சம்பளம் G4 கலத்தில் திரும்பப் பெறப்படும்.

VBA VLOOKUP குறியீட்டை எழுதுவோம்.

  1. மதிப்புகள் இருக்கும் வரம்பை வரையறுக்கவும், அதாவது நெடுவரிசை B மற்றும் C.

மைரேஞ்ச் = வரம்பை அமைக்கவும் (“பி: சி”)

  1. பணியாளரின் பெயரை வரையறுத்து, F4 கலத்திலிருந்து பெயரை உள்ளிடவும்.

பெயர் = வரம்பை அமைக்கவும் (“F4”)

  1. செல் ஜி 4 என சம்பளத்தை வரையறுக்கவும்.

சம்பளம் = வரம்பை அமைக்கவும் (“ஜி 4”)

  1. இப்போது, ​​VBA இல் பணித்தாள் செயல்பாட்டைப் பயன்படுத்தி VLOOKUP செயல்பாட்டை அழைத்து சம்பளத்தில் உள்ளிடவும். மதிப்பு. இது G4 கலத்தில் உள்ள மதிப்பை (Vlookup செயல்பாட்டின் வெளியீடு) வழங்கும். பின்வரும் தொடரியல் பயன்படுத்தப்படலாம்:

சம்பளம். மதிப்பு = விண்ணப்பம்.வொர்க்ஷீட்ஃபங்க்ஷன்.வி.லூக்கப் (பெயர், மைரேஞ்ச், 2, தவறு)

  1. இப்போது, ​​தொகுதியை இயக்கவும். நீங்கள் VBA VLOOKUP குறியீட்டை இயக்கிய பிறகு G4 கலத்தில் பணியாளரின் சம்பளம் இருக்கும்.

பணித்தாளில் செல் F4 இன் மதிப்பை “டேவிட்” என்று மாற்றி குறியீட்டை மீண்டும் இயக்கினால், அது டேவிட் சம்பளத்தை வழங்கும்.

எக்செல் VBA எடுத்துக்காட்டு # 3 இல் VLookup குறியீடு

உங்கள் நிறுவனத்தின் ஊழியரின் அடையாளம், பெயர்கள், துறை மற்றும் சம்பளம் உங்களிடம் உள்ளது என்று வைத்துக்கொள்வோம். VBA இல் Vlookup ஐப் பயன்படுத்தி, ஒரு பணியாளரின் சம்பள விவரங்களை அவரது பெயர் மற்றும் துறையைப் பயன்படுத்தி பெற விரும்புகிறீர்கள்.

எக்செல் இல் உள்ள வ்லூக்கப் செயல்பாடு, அட்டவணை_அரேயின் முதல் நெடுவரிசையான ஒற்றை நெடுவரிசையில் மட்டுமே தேடல்_மதிப்பைத் தேடுவதால், ஒவ்வொரு பணியாளரின் “பெயர்” மற்றும் “துறை” ஆகியவற்றைக் கொண்ட ஒரு நெடுவரிசையை நீங்கள் முதலில் செய்ய வேண்டும்.

VBA இல், பணித்தாள் B நெடுவரிசையில் “பெயர்” மற்றும் “துறை” மதிப்புகளை செருகுவோம்.

இதைச் செய்ய, டெவலப்பர் தாவலுக்குச் சென்று விஷுவல் பேசிக் என்பதைக் கிளிக் செய்க. செருகச் சென்று புதிய தொகுதியைத் தொடங்க தொகுதி மீது சொடுக்கவும்.

இப்போது நெடுவரிசை B ஐ நெடுவரிசை D (பெயர்) மற்றும் நெடுவரிசை E இன் மதிப்புகளைக் கொண்டுள்ளது.

தொடரியல் இவ்வாறு கொடுக்கப்பட்டுள்ளது:

முதலாவதாக, இந்த வழக்கில் 4 வது வரிசையில் இருந்து மதிப்புகள் தொடங்குவதால், i = 4 இலிருந்து ‘for’ loop ஐப் பயன்படுத்தவும். சி நெடுவரிசையின் கடைசி வரிசையின் இறுதி வரை லூப் தொடரும். ஆகவே, மாறி i ஐ ‘ஃபார்’ லூப்பிற்குள் ஒரு வரிசை எண்ணாகப் பயன்படுத்தலாம்.

கலத்திற்கு (வரிசை_நம்பர், நெடுவரிசை பி) ஒதுக்க மதிப்பை உள்ளிடவும், இது கலங்கள் (i, “B”) என வழங்கப்படலாம். மதிப்பு, செல் (row_number, நெடுவரிசை D) & “_” & செல் (row_number, நெடுவரிசை E ).

நீங்கள் B5 = D5 & “_” & E5 கலத்தை ஒதுக்க விரும்புகிறீர்கள் என்று வைத்துக் கொள்ளுங்கள், நீங்கள் குறியீட்டை இவ்வாறு பயன்படுத்தலாம்:

கலங்கள் (5, “பி”). மதிப்பு = கலங்கள் (5, “டி”). மதிப்பு & “_” & கலங்கள் (5, “இ”). மதிப்பு

இப்போது, ​​B5: E24 வரிசையில் தேடல் மதிப்பைக் காண அனுமதிக்க, நீங்கள் முதலில் தேடல் மதிப்பை உள்ளிட வேண்டும். பயனரிடமிருந்து மதிப்பை (பெயர் மற்றும் துறை) எடுத்துக்கொள்வோம். இதை செய்வதற்கு,

  1. பெயர், துறை மற்றும் லுக்அப்_வல் ஆகிய மூன்று மாறிகள் ஒரு சரமாக வரையறுக்கவும்.
  2. பயனரிடமிருந்து பெயர் உள்ளீட்டை எடுத்துக் கொள்ளுங்கள். குறியீட்டைப் பயன்படுத்தவும்:

name = InputBox (“பணியாளரின் பெயரை உள்ளிடுக”)

நீங்கள் குறியீட்டை இயக்கும்போது உள்ளீட்டு பெட்டியில் உள்ள உள்ளடக்கம் “உள்ளிடுக ..” உடனடி பெட்டியில் காண்பிக்கப்படும். வரியில் உள்ளிடப்பட்ட சரம் பெயர் மாறிக்கு ஒதுக்கப்படும்.

  1. பயனரிடமிருந்து துறையை எடுத்துக் கொள்ளுங்கள். மேலே குறிப்பிட்டதைப் போலவே செய்ய முடியும்.

துறை = இன்புட்பாக்ஸ் (“பணியாளர் துறையை உள்ளிடுக”)

  1. பின்வரும் தொடரியல் பயன்படுத்தி பெயரை மற்றும் துறையை “_” உடன் மாறி lookup_val க்கு பிரிப்பவராக ஒதுக்கவும்:

lookup_val = பெயர் & “_” & துறை

  1. B5 வரம்பில் தேடல்_வலைத் தேட vlookup தொடரியல் எழுதவும்: E24 அதை மாறி சம்பளத்தில் திருப்பித் தருகிறது.

மாறி சம்பளத்தைத் தொடங்கவும்:

மங்கலான சம்பளம் நீண்டது

பார்வை_வலைக் கண்டுபிடிக்க Vlookup செயல்பாட்டைப் பயன்படுத்தவும். அட்டவணை_அரேவை வரம்பாக (“பி: எஃப்”) கொடுக்கலாம் மற்றும் சம்பளம் 5 வது நெடுவரிசையில் உள்ளது. பின்வரும் தொடரியல் இவ்வாறு பயன்படுத்தப்படலாம்:

சம்பளம் = விண்ணப்பம்.வொர்க்ஷீட்ஃபங்க்ஷன்.வி.லூக்கப் (பார்வை_ மதிப்பு, வரம்பு (“பி: எஃப்”), 5, தவறு)

  1. செய்தி பெட்டியில் சம்பளத்தை அச்சிட, தொடரியல் பயன்படுத்தவும்:

MsgBox (ஊழியரின் சம்பளம் ”& சம்பளம்)

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

இது நீங்கள் துறைக்குள் நுழையக்கூடிய மற்றொரு பெட்டியைத் திறக்கும். நீங்கள் துறையில் நுழைந்த பிறகு, ஐ.டி.

இது ஊழியரின் சம்பளத்தை அச்சிடும்.

Vlookup பெயர் மற்றும் துறையுடன் எந்தவொரு பணியாளரையும் கண்டுபிடிக்க முடிந்தால், அது ஒரு பிழையைத் தரும். நீங்கள் “விஷ்ணு” மற்றும் துறை “ஐடி” என்று பெயரைக் கொடுத்தால், அது ரன்-டைம் பிழை ‘1004’ ஐ வழங்கும்.

இந்த சிக்கலை தீர்க்க, குறியீட்டில் நீங்கள் குறிப்பிடலாம், இந்த வகை பிழையில், அதற்கு பதிலாக “மதிப்பு கிடைக்கவில்லை” என்று அச்சிடவும். இதை செய்வதற்கு,

  1. Vlookup தொடரியல் பயன்படுத்துவதற்கு முன், பின்வரும் குறியீட்டைப் பயன்படுத்தவும்-

பிழை GoTo செய்தியில்

காசோலை:

பின்னால் வரும் குறியீடு (காசோலை :) கண்காணிக்கப்படும், மேலும் அது ஏதேனும் பிழையைப் பெற்றால், அது “செய்தி” அறிக்கைக்குச் செல்லும்

  1. குறியீட்டின் முடிவில் (முன் துணைக்கு முன்), பிழை எண் 1004 எனில், “பணியாளர் தரவு இல்லை” என்ற செய்தி பெட்டியில் அச்சிடவும். தொடரியல் பயன்படுத்தி இதைச் செய்யலாம்:

செய்தி:

Err.Number = 1004 என்றால்

MsgBox (“பணியாளர் தரவு இல்லை”)

என்றால் முடிவு

தொகுதி 1:

துணை vlookup3 ()

கலங்களுக்கு i = 4 க்கு (வரிசைகள். எண்ணிக்கை, “சி”). முடிவு (xlUp). வரிசை

கலங்கள் (i, “B”). மதிப்பு = கலங்கள் (i, “D”). மதிப்பு & “_” & கலங்கள் (i, “E”). மதிப்பு

அடுத்த ஐடிம் பெயர் சரம்

மங்கலான துறை சரம்

மங்கலான பார்வை_வழியாக சரம்

மங்கலான சம்பளம் நீண்ட பெயர் = உள்ளீட்டு பெட்டி (“பணியாளரின் பெயரை உள்ளிடுக”)

துறை = இன்புட்பாக்ஸ் (“பணியாளர் துறையை உள்ளிடுக”)

lookup_val = பெயர் & “_” & துறை ஒரு பிழை GoTo செய்தி

காசோலை:

சம்பளம் = விண்ணப்பம்.வொர்க்ஷீட்ஃபங்க்ஷன்.வி.லூக்கப் (பார்வை_ மதிப்பு, வரம்பு (“பி: எஃப்”), 5, தவறு)

MsgBox (“ஊழியரின் சம்பளம்” & சம்பளம்) செய்தி:

Err.Number = 1004 என்றால்

MsgBox (“பணியாளர் தரவு இல்லை”)

முடிவு IfEnd Sub

எக்செல் VBA இல் VLookup பற்றி நினைவில் கொள்ள வேண்டிய விஷயங்கள்

  • பணித்தாள் செயல்பாட்டைப் பயன்படுத்துவதன் மூலம் Vlookup செயல்பாட்டை எக்செல் VBA இல் அழைக்கலாம்.
  • எக்செல் விபிஏவில் வ்லூக்கப் செயல்பாட்டின் தொடரியல் அப்படியே உள்ளது.
  • VBA vlookup குறியீடு தேடல்_மதிப்பைக் கண்டுபிடிக்க முடியாதபோது, ​​அது 1004 பிழையைக் கொடுக்கும்.
  • Vlookup செயல்பாட்டில் உள்ள பிழையானது ஒரு பிழையை அளித்தால் கோட்டோ அறிக்கையைப் பயன்படுத்தி நிர்வகிக்கலாம்.