VLOOKUP sa Excel VBA | Paano Sumulat ng VLOOKUP Code sa VBA?
Ang Vlookup ay isang pagpapaandar ng worksheet sa excel ngunit maaari rin itong magamit sa VBA, ang pagpapaandar ng Vlookup ay katulad ng pagpapaandar sa VBA at sa worksheet pareho, dahil ito ay isang pagpapaandar na worksheet na ang pamamaraan upang magamit ang Vlookup sa VBA ay sa pamamagitan ng Application. pamamaraan at ang mga argumento ay mananatiling pareho.
Pag-andar ng VLOOKUP sa Excel VBA
Ang pagpapaandar ng VLOOKUP sa Excel ay ginagamit upang maghanap ng isang halaga sa isang array at ibalik ang kaukulang halaga mula sa ibang haligi. Ang halagang hahanapin ay dapat naroroon sa unang haligi. Kinakailangan ding banggitin kung hahanapin mo ang isang eksaktong tugma o isang tinatayang tugma. Ang pagpapaandar ng worksheet na VLOOKUP ay maaaring magamit sa VBA coding. Ang pagpapaandar ay hindi itinayo sa VBA at sa gayon ay maaari lamang tumawag gamit ang worksheet.
Ang pagpapaandar ng VLOOKUP sa Excel ay may sumusunod na syntax:
Kung saan, ang lookup_value ay ang halagang hahanapin, ang table_arrray ang talahanayan, ang col_index_num ang numero ng haligi ng halagang bumalik, ang range_lookup ay nangangahulugang kung ang tugma ay eksaktong o tinatayang. ang range_lookup ay maaaring TUNAY / MALI o 0/1.
Sa VBA code, ang function na VLOOKUP ay maaaring magamit bilang:
Application.WorksheetFunction.vlookup (lookup_value, table_array, col_index_num, range_lookup)
Paano Gumamit ng VLookup sa Excel VBA?
Nasa ibaba ang ilang mga halimbawa ng VLookup Code sa Excel VBA.
Maaari mong i-download ang VLookup na ito sa Excel VBA Template dito - VLookup sa Excel VBA Template
VLookup Code sa Excel VBA Halimbawa # 1
Tingnan natin kung paano natin matatawagan ang worksheet function na VLOOKUP sa Excel VBA.
Ipagpalagay na mayroon kang isang data ng mga mag-aaral ID, pangalan at average na marka na nakuha nila.
Ngayon, nais mong hanapin ang mga marka na nakuha ng isang mag-aaral, na may ID 11004.
Upang maghanap para sa halaga, sundin ang mga sumusunod na hakbang:
- Pumunta sa Tab ng Developer at mag-click sa Visual Basic.
- Sa ilalim ng VBA window, pumunta sa Ipasok at mag-click sa Modyul.
- Ngayon, isulat ang VBA VLOOKUP code. Ang sumusunod na VBA VLOOKUP code ay maaaring magamit.
Sub vlookup1 ()
Dim mag-aaral_id Habang Haba
Dim markahan Mahabang
mag-aaral_id = 11004
Itakda ang myrange = Saklaw ("B4: D8")
marka = Aplikasyon. WorksheetFunction.VLookup (student_id, myrange, 3, Mali)
Wakas Sub
Una, tukuyin ang isang id ng mag-aaral, na kung saan ay ang halaga upang maghanap. Samakatuwid, tinutukoy namin,
mag-aaral_id = 11004
Susunod, tinutukoy namin ang saklaw kung saan umiiral ang halaga at ang halaga ng pagbabalik. Dahil ang aming data ay naroroon sa mga cell B4: D8, tinutukoy namin ang isang range- myrange bilang:
Itakda ang myrange = Saklaw ("B4: D8")
Sa wakas, nai-input namin ang pagpapaandar ng VLOOKUP gamit ang pagpapaandar ng Worksheet sa isang variable, marka bilang
marka = Aplikasyon. WorksheetFunction.VLookup (student_id, myrange, 3, Mali)
Upang mai-print ang mga marka sa isang kahon ng mensahe, gamitin natin ang sumusunod na utos:
MsgBox “Mag-aaral na may ID:” & student_id & ”nakuha” at mga marka at ”marka”
Babalik ito:
Mag-aaral na may ID: 11004 nakakuha ng 85 marka.
Ngayon, i-click ang run button.
Mapapansin mong lilitaw ang isang kahon ng mensahe sa sheet ng Excel.
VLookup Code sa Excel VBA Halimbawa # 2
Ipagpalagay na mayroon kang data ng mga pangalan ng mga empleyado at kanilang suweldo. Ang data na ito ay binigyan ng mga haligi B at C. Ngayon, kailangan mong magsulat ng isang VBA VLOOKUP code na tulad ng naibigay ng isang pangalan ng empleyado sa isang cell, F4, ang suweldo ng empleyado ay ibabalik sa cell G4.
Isulat natin ang VBA VLOOKUP code.
- Tukuyin ang saklaw kung saan naroroon ang mga halaga, hal., Haligi B at C.
Itakda ang myrange = Saklaw ("B: C")
- Tukuyin ang pangalan ng empleyado at i-input ang pangalan mula sa cell F4.
Itakda ang pangalan = Saklaw ("F4")
- Tukuyin ang suweldo bilang cell G4.
Itakda ang suweldo = Saklaw ("G4")
- Ngayon, tawagan ang pagpapaandar ng VLOOKUP gamit ang WorksheetFunction sa VBA at i-input ito sa suweldo. Halaga. Ibabalik nito ang halaga (output ng pagpapaandar ng Vlookup) sa cell G4. Maaaring gamitin ang sumusunod na syntax:
suweldo.Value = Application.WorksheetFunction.VLookup (pangalan, myrange, 2, Mali)
- Ngayon, patakbuhin ang modyul. Maglalaman ang cell G4 ng suweldo ng empleyado pagkatapos mong patakbuhin ang VBA VLOOKUP code.
Ipagpalagay na binago mo ang halaga ng cell F4 na "David" sa worksheet at muling patakbuhin ang code, ibabalik nito ang suweldo ni David.
VLookup Code sa Excel VBA Halimbawa # 3
Ipagpalagay na mayroon kang data ng empleyado ng iyong kumpanya, na mayroong kanilang ID, mga pangalan, Kagawaran, at suweldo. Paggamit ng Vlookup sa VBA, nais mong makuha ang mga detalye sa suweldo ng isang empleyado na gumagamit ng kanyang pangalan at departamento.
Dahil ang pagpapaandar ng vlookup sa excel ay naghahanap ng lookup_value sa isang solong haligi lamang, na kung saan ay ang unang haligi ng table_array, kinakailangan na gumawa ka muna ng isang haligi na naglalaman ng "Pangalan" at "Kagawaran" ng bawat empleyado.
Sa VBA, ipasok natin ang mga halagang "Pangalan" at "Kagawaran" sa haligi B ng worksheet.
Upang magawa ito, pumunta sa tab ng Developer at i-click ang Visual Basic. Pagkatapos ay pumunta upang ipasok at mag-click sa Modyul upang magsimula ng isang bagong module.
Sumulat tayo ngayon ng code, tulad ng haligi B ay naglalaman ng mga halaga ng haligi D (pangalan) at haligi E.
Ang syntax ay ibinibigay bilang:
Una, gumamit ng isang 'para sa' loop mula sa i = 4 dahil ang mga halaga ay nagsisimula mula sa ika-4 na hilera sa kasong ito. Ang loop ay magpapatuloy hanggang sa katapusan ng huling hilera ng haligi C. Kaya, ang variable na i ay maaaring magamit bilang isang numero ng hilera sa loob ng 'for' loop.
Pagkatapos ay ipasok ang halagang itatalaga para sa Cell (row_number, haligi B), na maaaring ibigay bilang Mga Cell (i, "B"). Halaga, bilang Cell (row_number, haligi D) & "_" & Cell (row_number, haligi E ).
Ipagpalagay na nais mong italaga ang cell B5 = D5 & "_" & E5, maaari mo lamang magamit ang code bilang:
Mga Cell (5, "B"). Halaga = Mga Cell (5, "D"). Halaga at "_" & Mga Cell (5, "E"). Halaga
Ngayon, hayaan mong hanapin ang halaga ng paghahanap sa array B5: E24, kailangan mo munang ipasok ang halaga ng paghahanap. Kunin natin ang halaga (Pangalan at Kagawaran) mula sa gumagamit. Na gawin ito,
- tukuyin ang tatlong mga variable, pangalan, kagawaran at lookup_val bilang isang string.
- Kunin ang input ng pangalan mula sa gumagamit. Gamitin ang code:
pangalan = InputBox ("Ipasok ang pangalan ng empleyado")
Ang nilalaman sa input box na "Enter the .." ay ipapakita sa prompt box kapag pinatakbo mo ang code. Ang string na ipinasok sa prompt ay itatalaga sa variable ng pangalan.
- Kunin ang departamento mula sa gumagamit. Ang ay maaaring gawin katulad ng sa itaas.
departamento = InputBox ("Ipasok ang departamento ng empleyado")
- Italaga ang pangalan at departamento na may "_" bilang isang separator sa variable na lookup_val gamit ang sumusunod na syntax:
lookup_val = pangalan at "_" at departamento
- Isulat ang syntax ng vlookup upang maghanap para sa lookup_val sa saklaw na B5: E24 ibalik ito sa isang variable na suweldo.
Pasimulan ang variable na suweldo:
Dim na suweldo Bilang Mahaba
Gamitin ang pagpapaandar ng Vlookup upang hanapin ang lookup_val. Ang talahanayan_array ay maaaring ibigay bilang Saklaw ("B: F") at ang suweldo ay naroroon sa ika-5 haligi. Ang sumusunod na syntax ay maaaring magamit sa gayon:
suweldo = Application.WorksheetFunction.VLookup (lookup_val, Saklaw ("B: F"), 5, Maling)
- Upang mai-print ang suweldo sa isang kahon ng mensahe, gamitin ang syntax:
MsgBox (Ang suweldo ng empleyado ay ”& suweldo)
Ngayon, patakbuhin ang code. Ang isang prompt box ay lilitaw sa worksheet kung saan maaari mong ipasok ang pangalan. Matapos mong ipasok ang pangalan (Sabihin Sashi) at i-click ang OK.
Magbubukas ito ng isa pang kahon kung saan maaari kang magpasok sa kagawaran. Pagpasok mo sa departamento, sabihin mo IT.
Ipi-print nito ang suweldo ng empleyado.
Kung ang Vlookup ay makakahanap ng sinumang empleyado na may pangalan at departamento, magbibigay ito ng isang error. Ipagpalagay na bibigyan mo ang pangalang "Vishnu" at kagawaran na "IT", ibabalik nito ang error sa Run-time na '1004'.
Upang matugunan ang isyung ito, maaari mong tukuyin sa code, na sa ganitong uri ng error, i-print sa halip ang "Hindi nahanap na halaga". Na gawin ito,
- Bago gamitin ang vlookup syntax, gamitin ang sumusunod na code-
Sa Error Pumunta sa Mensahe
Suriin:
Ang sumusunod na code (ng Suriin) ay susubaybayan, at kung makakatanggap ito ng anumang error, pupunta ito sa pahayag na "mensahe"
- Sa pagtatapos ng code (Before End Sub), tukuyin na kung ang numero ng error ay 1004, pagkatapos ay i-print sa kahon ng mensahe na "Wala ang data ng empleyado". Maaari itong magawa gamit ang syntax:
Mensahe:
Kung Err.Number = 1004 Kung gayon
MsgBox ("Wala ang data ng empleyado")
Tapusin kung
Modyul 1:
Sub vlookup3 ()Para sa i = 4 To Cells (Rows.Count, "C"). End (xlUp). Row
Mga Cell (i, "B"). Halaga = Mga Cell (i, "D"). Halaga at "_" & Mga Cell (i, "E"). Halaga
Susunod na iDim na pangalan Bilang String
Dim department tulad ng String
Dim lookup_val Bilang String
Madilim na suweldo Bilang Longname = InputBox ("Ipasok ang pangalan ng empleyado")
departamento = InputBox ("Ipasok ang departamento ng empleyado")
lookup_val = pangalan at "_" & departmentOn Error GoTo Message
suriin:
suweldo = Application.WorksheetFunction.VLookup (lookup_val, Saklaw ("B: F"), 5, Mali)
MsgBox ("Ang suweldo ng empleyado ay" at suweldo) Mensahe:
Kung Err.Number = 1004 Kung gayon
MsgBox ("Wala ang data ng empleyado")
Tapusin Kung End End
Mga Bagay na Dapat Tandaan Tungkol sa VLookup sa Excel VBA
- Ang pagpapaandar ng Vlookup ay maaaring tawaging sa Excel VBA sa pamamagitan ng paggamit ng WorksheetFunction.
- Ang syntax ng pagpapaandar ng vlookup ay mananatiling pareho sa Excel VBA.
- Kapag hindi mahanap ng VBA vlookup code ang lookup_value, magbibigay ito ng 1004 error.
- Ang error sa pagpapaandar ng vlookup ay maaaring mapamahalaan gamit ang isang pahayag ng goto kung nagbabalik ito ng isang error.