VBA Match

Tak jak w arkuszu roboczym mamy Index and Match jako funkcje wyszukiwania, możemy również użyć funkcji Match w VBA jako funkcji wyszukiwania, ta funkcja jest funkcją arkusza i jest dostępna przez aplikację. skoroszytu, a ponieważ jest to funkcja arkusza, argumenty funkcji Match są podobne do funkcji arkusza.

Funkcja dopasowania VBA

Funkcja VBA Match wyszukuje pozycję lub numer wiersza wartości wyszukiwania w tablicy tabeli, tj. W głównej tabeli programu Excel.

W arkuszu funkcje wyszukiwania są integralną częścią programu Excel. Niektóre z ważnych funkcji wyszukiwania to WYSZUKAJ.PIONOWO, WYSZUKAJ.PIONOWO, INDEKS i PODAJ. Niestety, nie mamy tych funkcji jako funkcji VBA. Możemy jednak użyć ich jako funkcji arkusza w VBA.

W tym artykule pokażę, jak używać jednej z funkcji wyszukiwania arkusza MATCH w VBA jako funkcji arkusza.

Jak korzystać z funkcji MATCH w VBA Excel?

Pokażemy Ci prosty przykład użycia funkcji Excel MATCH w VBA.

Możesz pobrać ten szablon VBA Match Excel tutaj - Szablon VBA Match Excel

Przykład 1

W VBA możemy użyć tej formuły MATCH w programie Excel jako funkcji arkusza. Wykonaj poniższe kroki, aby użyć funkcji MATCH w języku VBA.

Krok 1: Utwórz podprocedurę, podając nazwę makra.

Kod:

 Sub Match_Example1 ()

Krok 2: W komórce E2 potrzebujemy wyniku, więc zacznij kod jako Range („E2”). Wartość =

Kod:

 Sub Match_Example1 () Range („E2”). Value = End Sub 

Krok 3: W komórce E2 wartość powinna być wynikiem formuły MATCH. Tak więc, aby uzyskać dostęp do funkcji VBA MATCH, musimy najpierw użyć właściwości „WorksheetFunction”. W tej właściwości otrzymamy listę wszystkich dostępnych funkcji arkusza.

Krok 4: Wybierz tutaj funkcję MATCH.

Kod:

 Sub Match_Example1 () Range („E2”). Value = WorksheetFunction.Match (End Sub 

Krok 5: Teraz problem zaczyna się, ponieważ nie otrzymujemy dokładnej nazwy składni, a otrzymujemy składnię jako „Arg1, Arg2, Arg3” w ten sposób. Więc musisz być absolutnie pewien składni tutaj.

Nasz pierwszy argument to WYSZUKAJ WARTOŚĆ, nasza WYSZUKAJ WARTOŚĆ znajduje się w komórce D2, więc wybierz tę komórkę jako Zakres („D2”). Wartość .

Kod:

 Sub Match_Example1 () Range („E2”). Value = WorksheetFunction.Match (Range („D2”). Value, End Sub 

Krok 6: Drugi argument to Tablica tabeli, nasz zakres tablic wynosi od A2 do A10. Wybierz zakres jako „Zakres („ A2: A10 ”)”

Kod:

 Sub Match_Example1 () Range („E2”). Value = WorksheetFunction.Match (Range („D2”). Value, Range („A2: A10”), End Sub 

Krok 7: Teraz ostatnim argumentem jest MATCH TYPE. Potrzebujemy dokładnego dopasowania, więc wprowadź wartość argumentu jako zero.

Kod:

 Sub Match_Example1 () Range („E2”). Value = WorksheetFunction.Match (Range („D2”). Value, Range („A2: A10”), 0) End Sub 

Uruchom makro, a uzyskamy pozycję bez względu na nazwę roku w komórce D2.

Przykład # 2 - Dopasowanie VBA z innego arkusza

Załóżmy, że ten sam zestaw danych z powyższego znajduje się na dwóch różnych arkuszach. Na przykład tablica tabeli znajduje się w nazwie arkusza o nazwie „Arkusz danych”, a wartość wyszukiwania w nazwie arkusza o nazwie „Arkusz wyników”.

W takim przypadku musimy odwoływać się do arkuszy według nazwy, zanim odwołamy się do zakresów. Poniżej znajduje się zestaw kodów z nazwami arkuszy.

Kod:

 Sub Match_Example2 () Arkusze ("Arkusz wyników") .Range ("E2"). Wartość = Funkcja arkusza roboczego.Match (Arkusze ("Arkusz wyników") .Range ("D2"). Wartość, Arkusze ("Arkusz danych"). Zakres („A2: A10”), 0) End Sub 

Przykład # 3 - Funkcja dopasowania VBA z pętlami

Jeśli wynik, który chcemy uzyskać w jednej komórce, nie ma problemu, ale jeśli wynik musi pochodzić z więcej niż jednej komórki, musimy użyć pętli VBA, aby uzyskać wynik we wszystkich komórkach.

Załóżmy, że masz takie dane.

W takich przypadkach pisanie długich kodów jest herkulesowym zadaniem, więc przechodzimy do pętli. Poniżej znajduje się zestaw kodu, który wykona zadanie za nas.

Kod:

 Sub Match_Example3 () Dim k As Integer For k = 2 to 10 Cells (k, 5) .Value = WorksheetFunction.Match (Cells (k, 4) .Value, Range ("A2: A10"), 0) Next k End Pod 

Ten zestaw kodów da wynik w mgnieniu oka.