Извините за мой первоначальный пост, в котором я не предоставил подробного описания того, что я хочу сделать.
Я хочу получить значение ячейки, если она соответствует двум критериям. Один критерий - это ячейка исправления, а второй мне нужно перебрать.
Пример:
Cells(2,1) = A
(соответствует «Name» и Criteria2 (Cells(1,6))
, для Cells(3,1)
я хочу применить то же самое, но с Criteria2 (Cells(2,6))
и т. д.
Моя альтернатива - отфильтровать критерий диапазона 1 (что я уже сделал), а затем получить все доступные значения, но я Мне нужно применить один и тот же процесс для 3 разных наборов, и я чувствую, что могу найти лучший подход с помощью match / Index.
Ниже вы можете найти мой файл excel, код и результат.
Вот результат моего кода:
А вот и мой код:
Sub match_index()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
Dim i As Long
i = 2
Dim criteria1 As String
criteria1 = ws.Cells(1, 4).Value
Dim criteria2 As String
criteria2 = ws.Cells(1, 6).Value
Dim criteria_range1 As Range
Set criteria_range1 = ws.Range(ws.Cells(2, 8), ws.Cells(14, 8))
Dim criteria_range2 As Range
Set criteria_range2 = ws.Range(ws.Cells(2, 9), ws.Cells(14, 9))
With Application
While i < 8
ws.Cells(i, 1).Value = .Index(criteria_range2, _
.Match(criteria1, criteria_range1, 0), _
.Match(ws.Cells(i, 6).Value, criteria_range2, 0), 1)
i = i + 1
Wend
End With
End Sub