Форум: "Основная";
Текущий архив: 2011.04.10;
Скачать: [xml.tar.bz2];
ВнизОшибка при поиске в 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;
Скачать: [xml.tar.bz2];
Память: 0.47 MB
Время: 0.004 c