Vba: jak korzystać z dopasowywania indeksów


Aby wykonać DOPASOWANIE INDEKSU w VBA, możesz użyć następującej podstawowej składni:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

Ten konkretny przykład wyszukuje wartości w komórkach od 2 do 11 czwartej kolumny arkusza w zakresie B2:B11 , a następnie zwraca odpowiednie wartości z zakresu A2:A11 w piątej kolumnie arkusza.

Poniższy przykład pokazuje, jak zastosować tę składnię w praktyce.

Przykład: Wykonaj DOPASOWANIE INDEKSU za pomocą VBA

Załóżmy, że mamy w Excelu następujący zbiór danych zawierający informacje o koszykarzach:

Załóżmy, że dla każdego gracza w kolumnie D chcemy znaleźć nazwę jego drużyny w kolumnie A, a następnie wpisać nazwę drużyny w kolumnie E.

W tym celu możemy utworzyć następujące makro:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 5).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zauważ, że to makro mogło wyszukać nazwę każdego gracza, a następnie zwrócić nazwę odpowiadającej mu drużyny w kolumnie E.

Zwróć uwagę, że w pętli For składnia Cells(i,5).value określa, że chcemy, aby nazwy zespołów były zwracane w piątej kolumnie arkusza kalkulacyjnego, czyli w kolumnie E.

Jeśli zmienimy tę składnię na Cells(i,6).value to nazwy zespołów zostaną zwrócone w szóstej kolumnie arkusza kalkulacyjnego:

 SubIndexMatch ()

    Dim i As Integer
    
    ' Perform index match
    For i = 2 To 11
    Cells(i, 6).Value = WorksheetFunction.Index(Range(" A2:A11 "), _
    WorksheetFunction.Match(Cells(i, 4).Value, Range(" B2:B11 "), 0))
    Next i
End Sub

Kiedy uruchomimy to makro, otrzymamy następujące dane wyjściowe:

Zwróć uwagę, że nazwy drużyn są teraz zwracane w szóstej kolumnie arkusza kalkulacyjnego (kolumna F).

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w VBA:

VBA: jak sprawdzić, czy ciąg zawiera inny ciąg
VBA: Jak policzyć liczbę wierszy w zakresie
VBA: Jak pisać funkcje COUNTIFS i COUNTIFS

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *