Компьютерный форум OSzone.net  

Компьютерный форум OSzone.net (http://forum.oszone.net/index.php)
-   Microsoft Office (Word, Excel, Outlook и т.д.) (http://forum.oszone.net/forumdisplay.php?f=115)
-   -   Поиск в выделенном (заданном) диапазоне (http://forum.oszone.net/showthread.php?t=314740)

blackeangel 10-05-2016 16:12 2633553

Поиск в выделенном (заданном) диапазоне
 
Всем привет. Вопрос простой.
Как вот это
Код:

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 2633616

Так и «запихать»:
Код:

s.Worksheets(1).Columns("B:B").Find(What:=m1, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
Цитата:

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

Искать не во всём столбце, а только в его значимой части. Например, используя его пересечение с заполненной частью Рабочего листа:
Код:

With s.Worksheets(1)
    Set z = Intersect(.Columns("B:B"), .UsedRange).Find(What:=m1, LookIn:=xlValues, LookAt:=xlPart, SearchOrder:=xlByRows)
End With



Время: 08:30.

Время: 08:30.
© OSzone.net 2001-