Методы поиска и замены текста очень важны при использовании шаблонов
документов(1). В прошлых главах мы рассмотрели, как с помощью поиска и
замены в шаблонах документов для Word получить метод быстрой и гибкой
подготовки документов. В рабочих книгах Excel также нет смысла отказы-
ваться от этой возможности, поэтому сейчас мы ее и рассмотрим.
Поиск текста выполняется путем вызова метода Find. В самом простом слу-
чае метод Find должен содержать один аргумент — искомый текст. Если
требуется уточнить режим поиска, то используются дополнительные необя-
зательные аргументы этого метода, которые позволяют определить направ-
ление поиска, область поиска и другие параметры. Метод Find возвращает
ссылку на ячейку, если поиск прошел удачно, иначе возвращается ссылка
на пустой объект. Рассмотрим, как можно реализовать поиск в приложени-
ях Delphi.
Поиск текста на листе рабочей книги
procedure TForml.Button6Click(Sender: TObject);
var eee_:string; FindRange:variant;
begin
eee_:=InputBox('Поиск т е к с т а ! ' , ' ' , ' ' ) ;
i f eee_<>'' then begin
try
FindRange:=E.Cells.Find(What:=eee_);
eee_:= FindRange.text;
except
messagebox(handle,'Искомый текст не найден!','Внимание!',О);
end;
end;
end;
Используя представленную выше процедуру, зададим условия поиска
(рис. 12.17).
Рис. 12.17. Задание условия поиска
Метод Find вернул ссылку на искомый объект. Если этот объект существует
реально (в случае успешного поиска), то мы сможем прочитать содержимое
ячейки, на которую указывает ссылка, и это не вызовет ошибку. Иначе воз-
никнет исключительная ситуация, обработав которую мы выведем сообще-
ние об отрицательном результате поиска (рис. 12.18).
Рис. 12.18. Вывод результата поиска
Мы рассмотрели случай поиска на всем листе рабочей книги Excel. Чтобы
произвести поиск текста в ограниченной области ячеек, необходимо вы-
звать метод Find объекта Range, где Range — область (интервал ячеек). На-
пример:
FindRange:=Range{' Al:Н500').Find('222');
В этом случае поиск будет выполнен только в области ячеек, ограниченной
интервалом А1:Н500.
Полная спецификация вызова метода Find:
Find(What, After, Lookln, LookAt, SearchOrder, SearchDirection,
MatchCase, MatchByte);
Аргументы метода Find приведены в табл. 12.1.
Таблица 12.1. Аргументы метода Find объекта Range
После успешного поиска текста метод Find возвращает ссылку на объект-
ячейку, используя который мы можем изменить содержание ячейки. Повто-
ряя поиск и замену многократно, можно сформировать необходимый доку-
мент, но для этого есть более эффективный способ — использование функ-
ции поиска и замены. Эта функция в Excel реализуется методом Replace,
который имеет два обязательных аргумента — искомый текст и текст для
замены. В качестве примера использования этого метода рассмотрим сле-
дующую процедуру.
Поиск и замена текста
procedure TForml.Button7Click(Sender: TObject) ;
var eee_,uuu_:string;
begin
eee_:=InputBox('Поиск текста!','','');
uuu_:=InputBox('Замена на текст!','','');
if eee_<>'' then begin
try
range:=E.Cells.Replace(What:=eee_,Replacement:=uuu );
except
messagebox(handle,'Искомый текст не найден!','Внимание!',0);
end;
end;
end;
В результате выполнения этой процедуры будет заменен текст, если условия
поиска выполнены. Иначе будет сгенерирована исключительная ситуация,
обработав которую мы выведем сообщение об ошибке и невозможности за-
мены текста. Полная спецификация метода Replace:
Replace(What, Replacement, LookAt, SearchOrder, MatchCase, MatchByte);
Аргументы метода Replace приведены в табл. 12.2.
Таблица 12.2. Аргументы метода Replace объекта Range
1 Напомню, что здесь шаблоном документа называется образец документа, заполняемый нуж-
ным текстом. Не путать с файлом шаблона .DOT. |