Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2011.04.10;
Скачать: CL | DM;

Вниз

Ошибка при поиске в Excel   Найти похожие ветки 

 
Spot   (2009-08-31 16:33) [0]

Выходит ошибка "Interfase not supported" и указывает на строку "R := ASheet.Range["C12","C1951"].Find("
procedure TForm1.Button2Click(Sender: TObject);
var i:integer;
R:ExcelRange;
addr,addr2:string;
begin
 // çàïóñêàåì íîâûé ýêçåìïëÿð Excel"ÿ
 XL := TExcelApplication.Create(nil);
 try
   XL.ConnectKind := ckNewInstance;
   XL.Connect; // ïîäêëþ÷åíèå
   XL.AutoQuit := False; // ïî óìîë÷àíèþ ýòî ñâîéñòâî True òîëüêî â unit ExcelXP
   XL.Visible[lcid] := True;
   // çäåñü ðàáîòàåì ñ Excel"åì
   WB.ConnectTo(XL.Workbooks.Open(
     Edit1.Text, // Filename: WideString;
     2, // UpdateLinks: OleVariant; 2 - never update
     False, // ReadOnly: OleVariant;
     EmptyParam, // Format: OleVariant;
     EmptyParam, // Password: OleVariant;
     EmptyParam, // WriteResPassword: OleVariant;
     EmptyParam, // IgnoreReadOnlyRecommended: OleVariant;
     EmptyParam, // Origin: OleVariant;
     EmptyParam, // Delimiter: OleVariant;
     EmptyParam, // Editable: OleVariant;
     EmptyParam, // Notify: OleVariant;
     EmptyParam, // Converter: OleVariant;
     False, // AddToMru: OleVariant;
     EmptyParam, // Local: OleVariant;
     EmptyParam, // CorruptLoad: OleVariant;
     lcid));
   IBQuart.Close;
   IBQuart.Open;
   IBQuart.FetchAll;
   IBQuart.First;
   for i:=1 to IBQuart.RecordCount do
   begin
     R := ASheet.Range["C12","C1951"].Find(
     IBQuartQuart.AsString, // What: OleVariant;
     EmptyParam, // After: OleVariant;
     xlValues, // LookIn: OleVariant;
     xlPart, // LookAt: OleVariant;
     xlByColumns, // SearchOrder: OleVariant;
     xlNext, // SearchDirection: XlSearchDirection;
     False, // MatchCase: OleVariant;
     False, //MatchByte: OleVariant
     // íóæíî óñòàíîâèòü â True, åñëè
     EmptyParam // SearchFormat: OleVariant
   );

   // ïîèñê áûë çàâåðøåí óäà÷íî, åñëè îïðåäåëåí îáúåêò R
   // ïîèñê ñëåäóþùèõ ÿ÷ååê ñ èñêîìûì òåêñòîì
   if Assigned(R) then
   begin
     Addr := R.Address[True, True, xlA1, EmptyParam, EmptyParam];
     Memo1.Lines.Add(addr);
     repeat
       // çàëüåì êðàñíûì öâåòîì íàéäåííûå ÿ÷åéêè
       R.Interior.Color := RGB(255, 0, 0);
       R.Font.Color := RGB(255, 255, 220);
       // íàéäåì ñëåäóþùóþ
       R := ASheet.Range["C12","C1951"].FindNext(R);
       if Assigned(R)
         then Addr2 := R.Address[True, True, xlA1, EmptyParam, EmptyParam];
       // âûõîä åñëè íå íàéäåíî èëè àäðåñ ñîâïàë (êðóã çàâåðøåí)
     until not Assigned(R) or SameText(Addr, Addr2);
   end;

   end;
 finally
   // îòñîåäèíÿåìñÿ
   XL.UserControl := True; // îòäàäèì óïðàâëåíèå ïîëüçîâàòåëþ
   XL.Quit; // çàêðûòü Excel
   XL.Disconnect;
   FreeAndNil(XL);
 end;
end;


 
Сергей М. ©   (2009-08-31 16:47) [1]


> ASheet


Это чего такое ?
Где объявлена и как инициализируется ?


 
Spot   (2009-09-01 02:54) [2]

type
 TForm1 = class(TForm)
   Label1: TLabel;
   Edit1: TEdit;
   Button1: TButton;
   OD1: TOpenDialog;
   Button2: TButton;
   Button3: TButton;
   IBQuart: TIBQuery;
   IBQuartID_OBJ: TIBStringField;
   IBQuartQUART: TIBStringField;
   Memo1: TMemo;
   XL: TExcelApplication;
   WB: TExcelWorkbook;
   Asheet: TExcelWorksheet;


 
KilkennyCat ©   (2009-09-01 03:14) [3]


> как инициализируется


 
KilkennyCat ©   (2009-09-01 03:16) [4]

сразу добавлю, а то спать охота.
ExcelWorksheet1.ConnectTo(ExcelApplication1.ActiveWorkbook.ActiveSheet as ExcelWorkSheet);


 
Spot   (2009-09-02 03:37) [5]

Спасибо KilkennyCat-у, заработало


 
KilkennyCat ©   (2009-09-02 05:17) [6]


> Сергей М. © (31.08.09 16:47) [1]

Вот видишь, ты ответил, а спасибо - мне :)


 
Сергей М. ©   (2009-09-02 09:13) [7]


> KilkennyCat ©   (02.09.09 05:17) [6]


Носи его не стаптывай, мне ничуть не жаль)



Страницы: 1 вся ветка

Текущий архив: 2011.04.10;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.012 c
15-1293529664
George
2010-12-28 12:47
2011.04.10
Rave Reports и сложные запросы


4-1247134941
istok20
2009-07-09 14:22
2011.04.10
CreateProcessAsUser error


10-1173096821
skosenok
2007-03-05 15:13
2011.04.10
Разные ServerName для двух Class-ов в одной ActiveX


15-1293027819
картман
2010-12-22 17:23
2011.04.10


6-1236235577
DrZloDey
2009-03-05 09:46
2011.04.10
Перенаправление портов