Здравствуйте,
Нужен удобный код массива, который быстро может извлечь данные из таблицы, аналог Индекс/Поискпоз.
С массивными кодами ранее не работал. Хотелось бы, получить такой код от профессионала.
Задача:
1) Чтобы, искал и извлекал данные по двум и более критериям
2) В одном коде выполнить поиск и подстановку для нескольких диапазонов.
Сейчас есть код, который ищет по одному условию, и я хотел сделать поиск по двум условиям, но не работает.
Вот код.
Код |
---|
Sub Test()
FastBegin
Dim S As Double
S = Now
Dim BinosozDB As Variant, BinoDB As Variant, Result As Variant, t As Variant, BinosozLR As String, BinoLR As String, i As Long, j As Long
Dim sl: Set sl = CreateObject("Scripting.Dictionary")
With Sheets("Database")
BinosozLR = .Cells(.Rows.Count, "AH").End(xlUp).Row
BinosozDB = .Range(.Cells(14, 2), .Cells(BinosozLR, 34))
End With
With Sheets("BINO")
BinoLR = .Cells(.Rows.Count, "C").End(xlUp).Row
BinoDB = .Range(.Cells(14, 1), .Cells(BinoLR, 6))
Result = .Range(.Cells(14, 7), .Cells(BinoLR, 7))
For i = 14 To BinosozLR
sl(BinosozDB(i, 1) & BinosozDB(i, 3)) = BinosozDB(i, 32)
Next i
For j = 14 To BinoLR
t = BinoDB(j, 1) & Left(BinoDB(j, 3), 250)
If sl.Exists(t) Then
Result(j, 1) = sl(t)
End If
Next j
.Range(.Cells(14, 7), .Cells(BinoLR, 7)) = Result
End With
FastEnd
MSGBOX Now - S, 64
End Sub |
Вкратце, нужны примеры:
Как искать по одному условию.
Как искать по двум условиям
Как выполнить две задачи в одном макросе (вставил в столбец А, следующий код для столбца В)
И желательно с описаниями, чтобы я мог понять и применить в своих файлах.
И еще один момент. Код выше ищет и выводит последнее совпадение, если имеются дублирующиеся строки. Хотелось, бы чтобы выводил первый найденный результат.
Бюджет 500 руб.
С уважением.