关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

Description of your first forum.

关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

帖子hunterduan » 星期二, 2003年3月4日 10:31


procedure TForm1.Button1Click(Sender: TObject);
begin
   Myexcel:=CreateOleObject('Excel.Application');    //打开Excel 文档,并记录下地原始记录个数。
   if OpenDialog1.Execute then
   MyWorkbook := MyExcel.Workbooks.Open(OpenDialog1.FileName);
   MyExcel.Visible := true;
   i:=MyExcel.worksheets[1].UsedRange.Rows.Count;
   end;

procedure TForm1.Button2Click(Sender: TObject);
var
  l,m,n,g:integer;
  str1,str2:string;
begin
    k:=0;    
    MyExcel.WorkSheets[1].Activate;
    Myexcel.worksheets[1].refrsh;
   j:=MyExcel.WorkSheets[1].UsedRange.Rows.Count;
   l:=j-i;
   if l=0 then
     begin
     ShowMessage('您已经输入数据了吗? 请检查!!');
     MyExcel.Visible := true;
    //这里没问题。
     end
     else
        begin
          if (l<>1) then
             begin                
                 for n:=j  downto i do
                  begin
                   str1:=Myworkbook.Cells[j,1].value;
                   for m:=i downto 1 do
                begin
                  str2:=Myworkbook.cells[m,1].value;
                  g:=CompareStr(str1,str2);
                  if g=0 then
                   begin
                    k:=k+1;
                    myworkbook.cells[j,1].font.color:=ClLime;
                 end;
                end;
               end;
              end
         else
           begin
              for n:=j downto i do
             begin
              str1:=Myworkbook.Cells[j,1].value;
              for m:=i downto 1 do
             begin
              str2:= Myworkbook.Cells[i,1].value;
              g:=CompareStr(str1,str2);
              if g=0 then
                begin
                 k:=k+1;
                 myworkbook.cells[j,1].font.color:=ClLime;
                end;
               end;
              end;
           end;
         end;
      label2.Caption:=IntToStr(k);
    end;
   end.
 
 
 

关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

帖子hunterduan » 星期二, 2003年3月4日 10:32


第一个过程中会出现异常!请各位高手指教!
 
 
 

关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

帖子wghmy » 星期二, 2003年3月4日 10:46


最好用一个变量指向打开文件的工作布,然后对工作布操作
 
 
 

关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

帖子HunterTeam » 星期二, 2003年3月4日 11:38


把异常提示贴出来看看。你自己也可以设一下断点跟踪看一下在哪出错。
 
 
 

关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

帖子hunterduan » 星期四, 2003年3月6日 14:52


HunterTeam:
异常是:Method 'cells' not supported by automation object.请帮忙看看。
 
 
 

关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

帖子younghat » 星期三, 2003年3月12日 12:00


hunterduan,
 myworkbook是WorkBook对象,当然没有Cells属性,所以
   myworkbook.cells[j,1].font.color:=ClLime;
 必然出错,
 改成:
   myworkbook.Sheets[1].cells[j,1].font.color:=ClLime;
 就行了。
 
 
 

关于Delphi和 Excel 为什么下面这段程序不能得到正确的结果。

帖子hunterduan » 星期三, 2003年3月12日 13:20


多人接受答案了。