Конференция "Corba" » Помогите включить фильтр в Excel через Delphi [D6]
 
  • 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;

     так не получаеться
    Заранее огромное спасибо.
  • MsGuns © (19.08.08 16:34) [1]
    Используйте "магнитофон"
  • 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]
    Удалено модератором

  • > И немогу запустить через 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»? пож помогите
 
Конференция "Corba" » Помогите включить фильтр в Excel через Delphi [D6]
Есть новые Нет новых   [118232   +26][b:0][p:0.002]