2011-04-28 28 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) 
相關問題