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");