Страницы: 1
RSS
Выборка на очень большом массиве.
 
Добрый день, может подскажите еще одни вопрос. Есть массив на 500 000 строк. Его нужно отВПРить. Формулами это делать, так сказать, не очень весело. Если есть ссылка или может тема такая была, или макрос. Буду благодарен за подсказку или помощь.
файл прикладывать смысла не вижу
Изменено: alexthegreat - 16.02.2017 11:04:08
 
Цитата
alexthegreat написал:
файл прикладывать смысла не вижу
Согласен. Если помощь не нужна, то зачем? ))
 
Юрий М Понял. Файл прикладываю.
 
Массив, словарь, массив...
Код
Sub tt()
Dim a, i&
a = [a1].CurrentRegion.Value
With CreateObject("scripting.dictionary"): .comparemode = 1
For i = 1 To UBound(a): .Item(a(i, 1)) = a(i, 2): Next
a = [i1].CurrentRegion.Columns(1).Resize(, 2).Value
For i = 1 To UBound(a):  a(i, 2) = .Item(a(i, 1)): Next
End With
[i1].Resize(UBound(a), 2).Value = a
End Sub
 
Код
Sub Poisk()
Dim i As Long
Dim iLastRow As Long
Dim FoundFruit As Range
 iLastRow = Cells(Rows.Count, "A").End(xlUp).Row
  For i = 1 To iLastRow
    Set FoundFruit = Columns("I").Find(Cells(i, "A"), , xlValues, xlWhole)
    If Not FoundFruit Is Nothing Then
      Cells(FoundFruit.Row, "J") = Cells(i, "B")
    End If
  Next
End Sub
 
Hugo, Kuzmich, спасибо большое. Буду пробовать
 
Find будет дольше.
По моему способу - учтите, что currentregion берёт только сплошную область, т.е. пропусков данных быть не должно! Ну или определяйте диапазон как делает Кузмич (мне лениво... писать больше :) ).
 
Спасибо большое, разобрался.
Изменено: alexthegreat - 16.02.2017 12:10:39
 
[M1]
 
Юрий М разобрался.   Невнимательность, или уже заработался  :D
Всем спасибо огромное.
Изменено: alexthegreat - 16.02.2017 12:11:34
Страницы: 1
Наверх