![]() |
|
|
|||||||
| Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
|
Опции темы | Поиск в этой теме | Опции просмотра |
|
#1
|
|||
|
|||
|
Здравствуйте!
Прошу помощи... Задача в общем то простая. Необходимо через ListBox (в ListBox уже добавлено несколько файлов Excel) поочередно открывая (инициализируя) файлы Excel произвести в них поиск определенного текста, и если он находится в файле, то сохранить файл с именем найденного текста. Делаю как ниже приведено, но что-то не работает... Код:
procedure TForm1.Button1Click(Sender: TObject);
var
Rnge: OleVariant;
k:Integer;
begin
for k:=0 to ListBox1.ItemIndex-1 do begin
E.WorkBooks.item(ListBox1.Items[ListBox1.ItemIndex]).Activate;
Rnge := E.ActiveWorkBook.ActiveSheet.Cells;
Rnge := Rnge.Find('40.10.2');
if Pointer(IDispatch(Rnge)) <> nil then
Rnge.Interior.Color := clFuchsia;
E.WorkBook.SaveAs(FileName:=(Rnge.Value)+' .xls');
end;
end;Почему-то не идет перебор и файл не сохраняется... Подскажите, что не так... Заранее благодарен Al_Sha --- Aristarh Dark: пользуемся тэгами |
|
#2
|
||||
|
||||
|
вот вроде работает
Код:
procedure TForm1.Button3Click(Sender: TObject);
var
e : OleVariant;
i, p, u : integer;
begin
e:= CreateOleObject('Excel.Application');
e.Visible:=true;
for u:=1 to listbox1.Count do
begin
e.WorkBooks.open(ExtractFilePath(ParamStr(0))+listbox1.Items[u-1]);
p:=0;
for i:=1 to e.WorkSheets.count do
e.Sheets[i].SELECT;
begin
try
e.cells.Find('7').select;
inc(p);
except
end;
if p>0 then
begin
E.activeWorkBook.SaveAs(ExtractFileDir(ParamStr(0))+'\' + '-' + listbox1.Items[u-1]);
E.activeWorkBook.close;
end;
end;
end;
E.Quit;
E := Unassigned;
end; |