2014-04-09 111 views
2

當我得到這個異常:Exception from HRESULT: 0x800A03EC例外安排工作表

它發生就行了sheet.Move(After: wb.Worksheets.Count);

List<String> spreadsheets = new List<String>(); 
//spreadsheets is filled with names 

while (spreadsheets.Count > i) 
{ 
    Excel.Worksheet sheet = wb.Worksheets.Add(); 
    sheet.Name = spreadsheets[i]; 
    sheet.Move(After: wb.Worksheets.Count); 
    i++; 
} 

不太清楚這個錯誤背後的原因,因此任何幫助,非常感謝!

如果您知道我正在嘗試做什麼,它也可能有所幫助... 本質上只是創建一個新的工作表,命名它,並將其移動到其他工作表的末尾。

+1

檢查'i'從'0'開始時,Excel範圍從指數'1'開始。只要一試,看看。 – Habib

+0

'spreadsheets'是我用工作表名稱創建的一個字符串數組 – Adjit

+0

@Habib我最初將'i'設置爲'0',如果事情被添加到列表中,它就會增加。我從來沒有在Excel中使用過「i」。我已經讀過,這個錯誤往往會發生,因爲excel是非零基於 – Adjit

回答

2

MSDN

類型:System.Object

在此之後,移動的片材將 被放置的片材。如果您指定Before,則不能指定After。

您正在查找工作表時傳遞一個整數。

像這樣的東西可能會奏效:

sheet.Move(After: wb.Worksheets[wb.Worksheets.Count]); 
+0

今天你已經全部結束了!這很棒!謝謝。我得到了另一個問題:) – Adjit