首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ Builder >

Excell的OLE区域排序有关问题

2012-09-25 
Excell的OLE区域排序问题我在网上找到个excell排序程序,后来我发展了一下可以指定工作表指定区域排序,一开

Excell的OLE区域排序问题
我在网上找到个excell排序程序,后来我发展了一下可以指定工作表指定区域排序,一开始成功了,后来不知道我动了啥,不行了,变成对整个表格排序了,请高手指点下,谢谢!


//---------------------------------------
// 对指定Excel文件中的指定工作表的指定列进行排序
// strExcelFileName : excel文件名
// sSheet :指定工作表
// nCol : 指定的列号
// nSortStyle : 1:升序,2:降序
void TForm1::SortExcelColumn(String strExcelFileName, String sSheet, int nCol, int nSortStyle)
{
  Ex = Variant::CreateObject("Excel.Application");
  Ex.PS("Visible",false);
  Ex.PG("WorkBooks").PR("Open", ExcelFileName.c_str());
  Wb = Ex.PG("ActiveWorkBook");
  Wb.PG("Sheets", sSheet.c_str()).PR("Select");
  Sheet = Wb.PG("ActiveSheet");
  Ex.PG("Columns", nCol).PR("Select");
  Ex.PG("ActiveSheet").PG("Cells", 2, nCol).PR("Select");
  ERange=Sheet.PG("Range","a2:f21");
  ERange = Ex.PG("Selection");
  ERange.Exec(Function("Sort")<<Ex.PG("Selection")<<nSortStyle);
  Wb.PR("Save");
  Wb.PR("Close");
  Ex.FN("Quit");
  Wb = Unassigned;
  Ex = Unassigned;
}


[解决办法]
ERange=Sheet.PG("Range","a2:f21");
ERange = Ex.PG("Selection");

这明显是画蛇添足。

ERange = Ex.PG("Selection");
改为:
ERange.PR("Select");

热点排行