Aplikacja VBA Dopasowanie - przewodnik krok po kroku z przykładami

Aplikacja Excel VBA. Dopasowanie

Jedną z najlepszych rzeczy w VBA jest to, że ma swoją własną funkcję, a także pozwoli nam uzyskać dostęp do wszystkich funkcji arkusza w klasie „Funkcja arkusza”. Musiałeś już użyć funkcji MATCH jako funkcji arkusza roboczego, ale nie jest to funkcja VBA, więc musimy uzyskać dostęp do klasy funkcji arkusza. W tym artykule pokażemy, jak używać funkcji MATCH w VBA przy użyciu metody Application.

Szybkie podsumowanie funkcji MATCH

PODAJ.POZYCJĘ to funkcja wyszukiwania, która szuka pozycji wartości wyszukiwania we wspomnianej tablicy przeglądowej. Na przykład spójrz na poniższy obraz danych.

W powyższych danych mamy miesiące od A2 do A6 i jeśli chcemy wiedzieć, w którym miejscu występuje miesiąc „Mar”, to możemy skorzystać z funkcji PODAJ.

Poniżej znajduje się składnia funkcji PODAJ.POZYCJĘ.

PODAJ.POZYCJĘ (wartość wyszukiwania, tablica wyszukiwania, (typ dopasowania))
  • Wartość wyszukiwania: dla której wartości szukamy pozycji w tablicy wyszukiwania.
  • Lookup Array: w której tablicy szukamy pozycji szukanej wartości.
  • (Typ dopasowania): W tym celu możemy podać trzy argumenty.
  1. 1 = mniej niż
  2. 0 = dokładne dopasowanie
  3. -1 = Większe niż

W większości przypadków używamy tylko „0 Dokładne dopasowanie”.

Jak korzystać z funkcji Application.Match w VBA?

Przykład 1

Spójrz na poniższe dane w programie Excel.

Na podstawie powyższych danych musimy znaleźć pozycję miesiąca „Mar” w zakresie komórek od A2 do A6. Ponieważ potrzebujemy wyników w komórkach D2, od razu zacznij kod jako Range („D2”). Wartość =.

Aby uzyskać wartość w komórce D2, musimy użyć funkcji arkusza MATCH, więc aby uzyskać do niej dostęp, najpierw musimy uzyskać dostęp do obiektu APPLICATION, a następnie do obiektu WORKSHEET FUNCTION.

Wpisz kropkę, aby wyświetlić listę funkcji arkusza.

Wybierz „Dopasuj” z listy.

Jednym z problemów w VBA podczas korzystania z funkcji arkusza jest to, że nie widzimy dokładnej składni, jak widzimy w przypadku funkcji arkusza. Jest to jeden z powodów, dla których wyjaśniliśmy składnię tylko na początku.

Tak więc pierwszym argumentem jest szukana wartość, czyli dla jakiej wartości szukamy miejsca. W tym przypadku szukamy miejsca na „Mar”, który znajduje się w komórce C2, więc podaj odwołanie do komórki.

Następnym argumentem jest tablica odnośników, tj. W jakim zakresie szukamy pozycji wartości odnośnika , dla tych komórek zasilających od A2 do A6.

Ostatni argument będzie dokładnym dopasowaniem, więc podaj 0.

Kod:

Sub Match_Example1 () Range ("D2"). Value = Application.WorksheetFunction.Match (Range ("C2"). Value, Range ("A2: A6"), 0) End Sub

Ok, skończyliśmy z formułą.

Uruchom kod za pomocą klawisza F5 i zobacz, co otrzymamy.

Więc mamy wynik jak 3, ponieważ wartość „Mar” jest na miejscu 3 -cim miejscu w zakresie A2 do A6.

Ta funkcja MATCH może zapewnić pozycję wartości wyszukiwania. Jednak funkcja MATCH jest w dużej mierze używana z funkcją WYSZUKAJ.PIONOWO do dostarczania numeru indeksu kolumny na podstawie nagłówka kolumny.

Przykład nr 2

Teraz zobaczymy, jak używać funkcji PODAJ.POZYCJĘ jako funkcji pomocniczej dla funkcji WYSZUKAJ.PIONOWO.

Spójrz na poniższe dane.

W powyższej tabeli patrzymy na sprzedaż z miesiąca „luty” w roku 2018, więc musimy użyć funkcji WYSZUKAJ.PIONOWO. WYSZUKAJ.PIONOWO jest również funkcją arkusza roboczego, więc uzyskaj dostęp do tego w taki sam sposób, jak uzyskaliśmy dostęp do funkcji PODAJ.POZYCJĘ.

Wartość wyszukiwania będzie komórką G2, więc podaj adres komórki.

Kod:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, End Sub

Table Array will be from A2 to D6.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value,Range("A2:D6"), End Sub

Now we need to provide from which column of the table array we are looking for the result, so this will be from the 3rd column. Instead of supplying the column number as 3, let’s use the MATCH function.

Code:

Sub Match_Example2() Range("H2").Value = Application.WorksheetFunction.VLookup(Range("G2").Value, Range("A2:D6"), Application.WorksheetFunction.Match(Range("H1").Value, Range("A1:D1"), 0), 0) End Sub

Zatem funkcja MATCH dostarcza numer kolumny z zakresu od A1 do D1 dla miesiąca „luty”. Uruchommy kod i zobaczmy, jak automatycznie pobiera numery kolumn.

Proszę bardzo, mamy wynik z kolumny numer 2 dzięki automatycznemu podaniu numeru kolumny z funkcji PODAJ.

Rzeczy do zapamiętania

  • Funkcja PODAJ.POZYCJĘ szuka pozycji wartości wyszukiwania w wybranej tablicy tablicowej.
  • Funkcja PODAJ.POZYCJĘ jest używana głównie z funkcją WYSZUKAJ.PIONOWO do automatycznego dostarczania numeru indeksu kolumny za pomocą nagłówka kolumny.
  • Funkcja MATCH jest dostępna jako funkcja arkusza w VBA.

Interesujące artykuły...