Tugma sa VBA | Paano Gumamit ng Tugma na Pag-andar sa VBA Excel? (Mga Halimbawa)

Parehas na mayroon kaming Index at Match sa worksheet bilang mga function ng lookup maaari din naming gamitin ang mga function ng Match sa VBA bilang isang function ng lookup, ang pagpapaandar na ito ay isang pagpapaandar ng worksheet at na-access ito ng application. paraan ng worksheet at dahil ito ay isang pag-andar ng worksheet ang mga argumento para sa Pag-andar ng tugma ay pareho sa pagpapaandar ng worksheet.

Pag-andar ng VBA Match

Ang pag-andar ng VBA Match ay hinahanap ang posisyon o numero ng hilera ng halaga ng pagtingin sa hanay ng talahanayan ibig sabihin sa pangunahing talahanayan ng excel.

Sa isang worksheet, ang mga pag-andar ng paghahanap ay isang mahalagang bahagi ng excel. Ang ilan sa mga mahalagang pag-andar ng paghahanap ay VLOOKUP, HLOOKUP, INDEX, at MATCH. Sa kasamaang palad, wala kaming mga pagpapaandar na ito bilang mga pagpapaandar ng VBA. Gayunpaman, maaari naming gamitin ang mga ito bilang mga pag-andar ng worksheet sa VBA.

Sa artikulong ito, ipapakita ko sa iyo kung paano gamitin ang isa sa worksheet lookup function na MATCH sa VBA bilang isang worksheet function.

Paano Gumamit ng MATCH Function sa VBA Excel?

Ipapakita namin sa iyo ang isang simpleng halimbawa ng paggamit ng pag-andar ng Excel MATCH sa VBA.

Maaari mong i-download ang VBA Match Excel Template na ito dito - VBA Match Excel Template

Halimbawa # 1

Sa VBA, maaari naming gamitin ang MATCH formula na ito sa excel bilang pagpapaandar ng worksheet. Sundin ang mga hakbang sa ibaba upang magamit ang MATCH function sa VBA.

Hakbang 1: Lumikha ng isang subprocedure sa pamamagitan ng pagbibigay ng isang macro name.

Code:

 Sub Match_Example1 ()

Hakbang 2: Sa E2 cell kailangan namin ang resulta, kaya simulan ang code bilang Saklaw ("E2"). Halaga =

Code:

 Sub Match_Example1 () Saklaw ("E2"). Halaga = End Sub 

Hakbang 3: Sa halaga ng E2 cell ay dapat na ang resulta ng formula ng MATCH. Kaya upang ma-access ang pagpapaandar ng VBA MATCH, kailangan muna nating gamitin ang "WorksheetFunction" na pag-aari. Sa pag-aari na ito, makukuha namin ang lahat ng magagamit na listahan ng pagpapaandar ng worksheet.

Hakbang 4: Piliin ang pagpapaandar ng MATCH dito.

Code:

 Sub Match_Example1 () Saklaw ("E2"). Halaga = WorksheetFunction.Match (End Sub 

Hakbang 5: Ngayon nagsisimula ang problema dahil hindi kami nakakakuha ng eksaktong pangalan ng syntax sa halip nakakakuha kami ng syntax bilang "Arg1, Arg2, Arg3" na tulad nito. Kaya kailangan mong maging ganap na sigurado ng mga syntax dito.

Ang aming unang argumento ay LOOKUP VALUE, ang aming LOOKUP VALUE ay nasa cell D2, kaya piliin ang cell bilang Saklaw ("D2"). Halaga.

Code:

 Sub Match_Example1 () Saklaw ("E2"). Halaga = WorksheetFunction.Match (Saklaw ("D2"). Halaga, End Sub 

Hakbang 6: Ang Pangalawang argumento ay ang Array ng Talahanayan, ang aming hanay ng hanay ng talahanayan ay mula A2 hanggang A10. Kaya piliin ang saklaw bilang "Saklaw (" A2: A10 ")"

Code:

 Sub Match_Example1 () Saklaw ("E2"). Halaga = WorksheetFunction.Match (Saklaw ("D2"). Halaga, Saklaw ("A2: A10"), End Sub 

Hakbang 7: Ngayon ang pangwakas na argumento ay MATCH TYPE. Kailangan namin ng eksaktong tugma, kaya ipasok ang halaga ng argumento bilang zero.

Code:

 Sub Match_Example1 () Saklaw ("E2"). Halaga = WorksheetFunction.Match (Saklaw ("D2"). Halaga, Saklaw ("A2: A10"), 0) End Sub 

Patakbuhin ang macro makukuha natin ang posisyon ng kung ano man ang pangalan ng taon na naroroon sa cell D2.

Halimbawa # 2 - Tugma sa VBA Mula sa Isa pang Sheet

Ipagpalagay na ang parehong hanay ng data mula sa itaas ay naroroon sa dalawang magkakaibang mga sheet. Halimbawa, ang hanay ng talahanayan ay naroroon sa pangalan ng sheet na tinatawag na "Data Sheet" at ang Halaga ng Paghahanap ay naroon sa pangalan ng sheet na tinatawag na "Result Sheet".

Sa kasong ito, kailangan naming mag-refer ng mga worksheet sa pamamagitan ng pangalan nito bago kami mag-refer sa mga saklaw. Nasa ibaba ang hanay ng mga code na may mga pangalan ng sheet.

Code:

 Sub Match_Example2 () Sheets ("Result Sheet") .Range ("E2"). Value = WorksheetFunction.Match (Sheets ("Result Sheet") .Range ("D2"). Value, Sheets ("Data Sheet"). Saklaw ("A2: A10"), 0) End Sub 

Halimbawa # 3 - Pag-andar ng VBA Match sa Mga Loops

Kung ang resulta na nais namin sa isang solong cell pagkatapos ay walang problema, ngunit kung ang resulta ay dapat na dumating sa higit sa isang cell pagkatapos kailangan naming gumamit ng isang VBA loop upang makuha ang resulta sa lahat ng mga cell.

Ipagpalagay na mayroon kang isang data tulad nito.

Sa mga kasong ito, isang gawain ng herculean na magsulat ng mga mahahabang code, kaya lumilipat kami sa mga loop. Nasa ibaba ang hanay ng code na gagawa ng trabaho para sa amin.

Code:

 Sub Match_Example3 () Dim k Bilang Integer Para sa k = 2 To 10 Cells (k, 5). Halaga = WorksheetFunction.Match (Cells (k, 4) .Value, Range ("A2: A10"), 0) Susunod k End Sub 

Ang hanay ng mga code na ito ay makakakuha ng resulta sa isang kisapmata lamang.