![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
![]() Здравствуйте!
Прошу у разбирающихся помощи. Нужен кусок кода с реализацией метода Find для листа Excel. Задача простая: в некоем диапазоне найти ячейку, значение которой равно S, где S - тестовая строка, и поместить номер строки в переменную n. Программа написана, отлажена и нормально работает, но поиск сейчас реализован методом перебора. Претензия пользователя - скорость работы. Кажется мне, что если применить Find, то будет отрабатывать быстрее. |
#2
|
||||
|
||||
![]() Код:
procedure TForm1.FormCreate(Sender: TObject); var e: OleVariant; n: integer; begin e:= CreateOleObject('Excel.Application'); e.Workbooks.Add; //вставляем в B4 текст e.Cells[4,2].Value:= 'Hello World!'; e.Visible:= true; //поиск по книге (ставим курсор на ячейку A1) e.Cells[1,1].Select; e.Cells.Find(What:= 'Hello World!', After:= e.ActiveCell, LookIn:= -4123, LookAt:= 2, SearchOrder:= 1, SearchDirection:= 1, MatchCase:= false, SearchFormat:= false).Activate; //помещаем номер строки с заданным текстом в переменную n:= e.ActiveCell.Row; ShowMessage(inttostr(n)); end; Google в помощь |
#3
|
|||
|
|||
![]() Большое спасибо за ответ! А можно по паре слов по поводу смысла параметров - LookIn:= -4123, LookAt:= 2, SearchOrder:= 1, earchDirection:= 1, MatchCase:= false, SearchFormat:= false - Это чтобы выйти хотя бы на какой-то уровень осознания
|
#4
|
||||
|
||||
![]() Цитата:
LookIn - способ поиска в ячейке. Данное значение ищет искомый текст даже в формулах (такой поиск стоит по умолчанию).Например, поиск "мимо" формул - 4163. LookAt - стандартный параметр, не знаю на что он влияет, и какие еще значения может принимать... SearchOrder - искать по строкам (можно искать по столбцам, но по умолчанию в поиске стоит по строкам). SearchDirection - в какую строну идти (вверх документа или вниз). Мы идем вниз, собственно по данной причине перед поиском ставим указатель на первую ячейке. MatchCase - если true, то ищет полное совпадение искомого текста. Например, в первой ячейке текст 'Чел', а во второй 'Человек'. Если матчкэйс стоит на true, и искомое слово - 'Чел' то он найдет только первое значение. А если false, то оба. SearchFormat - дополнительный формат поиска в excel'e. С ним не сталкивался, как пользоваться не знаю. P.S. Если устраивает простой стандартный поиск, то можно оставить только параметры what и after. Остальные не обязательны к заполнению, но лучше все-таки использовать полную конструкцию. Google в помощь Последний раз редактировалось Ildar-tsr, 28.11.2011 в 12:54. |
#5
|
|||
|
|||
![]() Большое спасибо за исчерпывающий ответ!
|