procedure TerminateOLE;
var
  FSnapshotHandle:THandle;
  FProcessEntry32:TProcessEntry32;
  Ret : BOOL;
  ProcessID : integer;
  s:string;
begin
  FSnapshotHandle:=CreateToolhelp32Snapshot(TH32CS_SNAPPROCESS,0);
  FProcessEntry32.dwSize:=Sizeof(FProcessEntry32);
  Ret:=Process32First(FSnapshotHandle,FProcessEntry32);
  while Ret do
  begin
    s:=ExtractFileName(FProcessEntry32.szExeFile);
    if s='EXCEL.EXE' then
    begin
      ProcessID:=FProcessEntry32.th32ProcessID;
      TerminateProcess(OpenProcess(PROCESS_TERMINATE,false,ProcessID),1);
      s:='';
    end;
    Ret:=Process32Next(FSnapshotHandle,FProcessEntry32);
  end;
end;//我的?代?
procedure TfmMain.BitBtn1Click(Sender: TObject);
var
  WorkBook1, WorkBook2: OLEVariant;
begin
  try
    Excel := Unassigned;
    Excel := CreateOleObject('Excel.Application');    //打?文件1
    Excel.WorkBooks.Open(fe2000.Text);
    WorkBook1 := Excel.ActiveWorkBook;
    WorkBook1.Close;    //打?文件2
    Excel.WorkBooks.Open(fe2001.Text);
    WorkBook2 := Excel.ActiveWorkBook;
    WorkBook2.Close;
  finally
    if not VarISEmpty(Excel) then
      Excel.Quit;
    Excel := Unassigned;
    TerminateOLE;                 //加到?里
  end;end;