如题! 比如有6个月,在一个 Workbooks 里出现6个WorkSheet 每个对应一个月份。
语句该怎么写? 为何我用以下语句只会写6月份的,而前几个都是空白的。      svMonth:=FMonth;
      For i:=1 to svMonth do
      begin
        FMonth:=i;
        RepTitle:= Fyear+'年'+inttostr(FMonth)+'月XXXX表';
        SheetName:=inttostr(FMonth)+'月';
        if i>1 then
        begin
          XLApp.Workbooks[1].WorkSheets.Add;
        end;
        XLApp.Workbooks[1].WorkSheets[i].Activate;
        XLApp.Workbooks[1].WorkSheets[i].Name :=SheetName;
        Sheet:=XLAPP.Workbooks[1].WorkSheets[SheetName];
        WriteExcelES(XLApp,Sheet,Range,Rows,ProgressBar1); // 向Excel中写入,
      end
     WriteExcelES 单个月份写入绝对没问题。

解决方案 »

  1.   

    改成这样:svMonth:=FMonth;
          For i:=1 to svMonth do
          begin
            FMonth:=i;
            RepTitle:= Fyear+'年'+inttostr(FMonth)+'月XXXX表';
            SheetName:=inttostr(FMonth)+'月';
            if i>1 then
            begin
              Sheet:=XLApp.Workbooks[1].WorkSheets.Add;
            end;
            Sheet.Activate;
            Sheet.Name :=SheetName;
            //Sheet:=XLAPP.Workbooks[1].WorkSheets[SheetName];
            WriteExcelES(XLApp,Sheet,Range,Rows,ProgressBar1); // 向Excel中写入,
          end