-
Ulugbek (19.08.08 16:18) [0]Привет всем..
Помогите! Надо включить фильтр по заданному критерию.
То есть, есть xls файл. На всех колонках включен "Автофильтр". И мне надо открыть этот xls файл и произвести фильтрацию по первой колонке (А1) через Delphi. Вот соурсе.
ExcelWB.workSheets[2].range['A1'].AutoFilter(1,'=+параметр+'',xlAnd,EmptyParam,True);
While Not (SameText(ExcelWB.workSheets[2].Cells[i,1],'')) do
begin
ывлдоылдфво
вырфвлорфыолв
end;
так не получаеться
Заранее огромное спасибо. -
Используйте "магнитофон"
-
Ulugbek (19.08.08 17:01) [2]Не понял.. вы имеету запустит макрос?
-
Виталий Панасенко(дом) (19.08.08 21:31) [3]имеется ввиду, запись макроса
-
Ulugbek (20.08.08 09:15) [4]Пробовал так .. в Excel листе создал ну меню сервис/макрос/начать запись макрос по имени Test2 потом начал записать некоторые действии ну пару раз фильтр сделал.. и в VBA коде
Sub Test()
'
' Test Макрос
' Макрос записан 19.08.2008 (Ulug)
'
Selection.AutoFilter Field:=1, Criteria1:="07/00239"
End Sub
И немогу запустить через Delphi пишет invalid number of parametrs
вот так запускаю
ExcelApp.Application.run('Test','07/00321'); после имя макроса должен параметр..
Помогите решит эт проблему -
Ulugbek (20.08.08 09:24) [5]Удалено модератором
-
Виталий Панасенко(дом) (20.08.08 12:31) [6]
> И немогу запустить через Delphi пишет invalid number of
> parametrs
> вот так запускаю
> ExcelApp.Application.run('Test','07/00321'); после имя макроса
> должен параметр..
> Помогите решит эт проблему
Ерунду ты пишешь -
Ulugbek (20.08.08 12:57) [7]Почему Ерунду сразу!
Вот что у меня получилось
но теперь не могу читать фильтрованные записи. То есть читает все записи который есть в данном листе. А мне надо читать только фильтрованные..
вот для примераprocedure TForm1.Button1Click(Sender: TObject);
var
P_num_contr :string;
i :integer;
begin
ExcelApp:=CreateOleObject('Excel.Application');
ExcelApp.Application.EnableEvents:= false;
ExcelApp.DisplayAlerts := false;
ExcelApp.Visible := true;
ExcelWB:= ExcelApp.Workbooks.Open(Mydir+'\Export.xls',Password:='\"rcRjy',ReadOnly:=true);
ExcelWB.workSheets[2].activate;
ExcelApp.Application.run('Test','07/00321');
i:=3;
While Not (SameText(ExcelWB.workSheets[2].Cells[i,1],'')) do
begin
P_num_contr:=TRIM(ExcelWB.workSheets[2].Cells[i,1].Value);
ShowMessage(P_num_contr);
inc(i);
end;
end; -
юл (29.11.11 18:31) [8]У меня в экселе есть много учеников и 5 предметов, по которым они получили оценки.Как с помощью фильтра узнать :у кого более 2х оценок «3»? пож помогите