PDA

Показать полную графическую версию : Поиск в выделенном (заданном) диапазоне


blackeangel
10-05-2016, 16:12
Всем привет. Вопрос простой.
Как вот это

Columns("B:B").Select
Selection.Find(What:=m1, After:=ActiveCell, LookIn:=xlValues, _
LookAt:=xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False).Activate

запихать в вот это

Set z = s.Worksheets(1).Cells.Find(What:=m1, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)

Т.к. искать надо только в определенном столбце, а не по всем у листу.
Это делается для ускорения поиска.
Если есть, конечно, способ ускорить до мгновения ока, то буду только рад.

Iska
10-05-2016, 18:43
Так и «запихать»:
s.Worksheets(1).Columns("B:B").Find(What:=m1, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
Это делается для ускорения поиска.
Если есть, конечно, способ ускорить до мгновения ока, то буду только рад. »
Искать не во всём столбце, а только в его значимой части. Например, используя его пересечение с заполненной частью Рабочего листа:
With s.Worksheets(1)
Set z = Intersect(.Columns("B:B"), .UsedRange).Find(What:=m1, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
End With




© OSzone.net 2001-2012