注意:我要的是     
  var   ExcelApp:   Variant;   
  ExcelApp   :=   CreateOleObject(   'Excel.Application'   );
  这种方法创建EXCEL应用程序。  将sort方法的几个参数定义为如下:
  Key1, Order1, Key2, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod : Variant ;  
  //以下是sort参数赋值:
  Key1 := exlWbk.WorkSheets[1].Range['C'+IntTostr(HbRowNum)];  //HbRowNum是动态行参数
  Order1 := xlAscending;
  Key2 := exlWbk.WorkSheets[1].Range['D'+IntTostr(HbRowNum)];  //动态行
  Order2 := xlAscending;
  Key3 := EmptyParam;
  Order3 := EmptyParam;
  Header := xlNo;
  OrderCustom := 1;
  MatchCase := False;
  Orientation := xlSortRows;
  SortMethod := xlPinYin;  调用时,用如下语句对二个字段同时进行升序排序。
   exlWbk.WorkSheets[1].Range['c4:B4'].Select;
   exlApp.Selection.Sort(Key1, Order1, Key2, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod);
  进行sort语句时, 提示range类的sort无效.  该如何使用sort?
  一天搞这么一句没弄出来,请大家帮忙!  

解决方案 »

  1.   

    exlWbk.WorkSheets[1].Range['C'+IntTostr(HbRowNum)+':D'+IntTostr(HbRowNum)].Select; 
    exlApp.Selection.Sort(Key1, Order1, Key2, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod); 或是
    exlWbk.cells.Sort(Key1, Order1, Key2, Order2, Key3, Order3, Header, OrderCustom, MatchCase, Orientation, SortMethod); 
    都不行。Sort一函数在Delphi该如何调用啊?
      

  2.   

    自己找到答案了,
    结贴!!!
    代码如下:
              exlApp.Selection.Sort (
              Key1 := exlWbk.WorkSheets[1].Range['C'+IntTostr(HbRowNum)],
              Order1 := xlAscending,
              Key2 := exlWbk.WorkSheets[1].Range['D'+IntTostr(HbRowNum)],
              Order2 := xlAscending,
              Key3 := EmptyParam,
              Order3 := EmptyParam,
              Header := xlNo,
              OrderCustom := 1,
              MatchCase := False,
              Orientation := xlSortRows,
              SortMethod := xlPinYin);
    希望后面的人能顺利。
      

  3.   

    只对C,D列字段排序,
    代码如下:
              exlApp.Selection.Sort ( 
              Key1 := exlWbk.WorkSheets[1].Range['C'+IntTostr(HbRowNum)], 
              Order1 := xlAscending, 
              Key2 := exlWbk.WorkSheets[1].Range['D'+IntTostr(HbRowNum)], 
              Order2 := xlAscending)即可。
    还可指定第三个字段,在sort里面加第三个参数值就行。
    不能超过三个字段的排序,否则,第三个后面的所有被排序的字段将被忽略。
    Header ,OrderCustom ,MatchCase ...等参数视必要的情况下加。
      

  4.   

      ExcelApp.ActiveSheet.Range[ExcelApp.cells[2,1],ExcelApp.cells[6,4]].Sort (
              Key1 := ExcelApp.cells[sortbegin,3],
              Order1 := xlDescending,
              Key2 := ExcelApp.cells[sortbegin,1],
              Order2 := xlAscending,          Header := xlGuess,
              OrderCustom := 1,
              MatchCase := False,
              Orientation := xlTopToBottom,
              SortMethod := xlStroke);