2011-04-28 73 views
1

我想尝试排序使用Microsoft.Office.Interop.Excel列使用C#和我得到一个“的类范围失败的方法排序”错误。代码是:类的范围排序失败的方法c# - excel

 Excel.Workbook theWorkbook = objApp.Workbooks.Open("D:/rank.xls", Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing, Type.Missing, Type.Missing, Type.Missing, 
      Type.Missing, Type.Missing); 
     Excel.Sheets sheets = theWorkbook.Sheets; 
     Excel.Worksheet worksheet = (Excel.Worksheet)sheets.get_Item(2); 

     Excel.Range oRng = worksheet.get_Range("E4", "E100"); 
     oRng.Activate(); 
     oRng.Cells.Select(); 

     oRng.Sort(Type.Missing, Excel.XlSortOrder.xlAscending,Type.Missing, Type.Missing, 
     Excel.XlSortOrder.xlAscending, Type.Missing,Excel.XlSortOrder.xlAscending, Excel.XlYesNoGuess.xlNo, 
     Type.Missing, Type.Missing, Excel.XlSortOrientation.xlSortColumns,Excel.XlSortMethod.xlPinYin, 
     Excel.XlSortDataOption.xlSortNormal,Excel.XlSortDataOption.xlSortNormal, 
     Excel.XlSortDataOption.xlSortNormal); 

     theWorkbook.Save(); 
     theWorkbook.Close(); 
     objApp.Quit(); 
     Marshal.ReleaseComObject(objApp); 

我错过了什么吗?

的电子表格中不受保护,没有密码才能打开它(我试过在一个简单的电子表格,一列30行,也不管用)

如果有人可以帮助,我会非常感激。

在此先感谢。

问候,

回答

0

尝试写在Excel中的宏,然后实现在C#中保存的VB代码。

+1

嗨德米特里,感谢您的回答。 但我该怎么做?我必须将vb代码直接放在c#中,这可能吗?谢谢 – robot11 2011-04-29 02:56:53

+0

@ v00d00请回答lincoln的问题 – 2012-04-02 18:24:38

0
oRng.Sort("This should be column name you going sort", 
    Excel.XlSortOrder.xlAscending, 
    Type.Missing, 
    Type.Missing, 
    Excel.XlSortOrder.xlAscending, 
    Type.Missing,Excel.XlSortOrder.xlAscending, 
    Excel.XlYesNoGuess.xlNo, 
    Type.Missing, 
    Type.Missing, 
    Excel.XlSortOrientation.xlSortColumns, 
    Excel.XlSortMethod.xlPinYin, 
    Excel.XlSortDataOption.xlSortNormal, 
    Excel.XlSortDataOption.xlSortNormal, 
    Excel.XlSortDataOption.xlSortNormal) 
相关问题