Страницы: 1
RSS
VBA найти данные по двум критериям
 
В соответствии с датой и иностранной валютой, расположенной на странице 1, я должен принести данные из страницы 2

Я могу сделать это по формуле. Может ли код VBA быть записан, поскольку он работает медленно в файле?
 
А чем формула не устраивает ВПР к примеру? Правда придется сделать доп столбец.
 
А ERUO и UERO что за валюта?
Изменено: Kuzmich - 11.08.2018 11:45:27
 
Формула, которую я использую
=ВПР(9^9;ЕСЛИ((Лист2!A$2:A$10=Лист1!A2)*(Лист2!B$2:B$10=Лист1!B2);Лист2!C$2:C$10);1)
UERO ошибочен. Все это будет EURO
Один год набора данных будет (>)30.000 строк.
 
Код
Sub Poisk()
Dim i As Long
Dim iLastRow As Long
Dim FoundCell As Range
Application.ScreenUpdating = False
 With Worksheets("Лист2")
   iLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
   For i = 2 To iLastRow
     .Cells(i, "D") = .Cells(i, "A") & "|" & .Cells(i, "B")
   Next
     iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
  For i = 2 To iLastRow
    Set FoundCell = .Columns("D").Find(Cells(i, "A") & "|" & Cells(i, "B"), , xlValues, xlWhole)
    If Not FoundCell Is Nothing Then
      Cells(i, "C") = .Cells(FoundCell.Row, "C")
    End If
  Next
    .Columns("D").Delete
 End With
Application.ScreenUpdating = True
End Sub
Запускать с лист1
 
liny1 сделайте доп столбец дата+валюта и работайте с ВПР, все будет ок. Ваш вариант - очень медленный.
Изменено: skais675 - 11.08.2018 12:16:14
 
Kuzmich,
спасибо. Работает гладко
Страницы: 1
Наверх