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