0
내가 통합 문서를 열고 한 시트 유지하기 위해 다음과 같은 코드가 있습니다엑셀 상호 운용성 예외 0x8002000B
//Get a new workbook.
oWB = app.Workbooks.Add(Missing.Value);
int len = oWB.Sheets.Count;
for (int i = 1; i < len; i++)
{
((Worksheet)oWB.Sheets[i]).Delete();
}
oSheet = (Microsoft.Office.Interop.Excel.Worksheet)oWB.ActiveSheet;
이 코드는 많은 클라이언트 구성에 많은 년간 근무했습니다.
어떤 이유, 나는 (히브리어) 엑셀 2013과 의상을 가지고 있고, 자신의 컴퓨터에서 나는 다음과 같은 예외가 얻을 : 나는 상황을 이해한다면
System.Runtime.InteropServices.COMException (0x8002000B): Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))
at Microsoft.Office.Interop.Excel.Sheets.get__Default(Object Index)
at IOSIGHT.Win.ActiveReports.ExcelHelper.StartExcel()
, 그것은 것을 그 어떤 이유에 대한 통합 문서에 시트가 없으므로 이므로 oWb.ActiveSheet에 대한 호출보다 예외가 발생합니다. 이 문제의 원인은 무엇입니까?
예, 동일한 예외가있는 다른 게시물을 보았지만 코드가 시나리오와 일치하지 않습니다. 더 이상 존재하지 않는 인덱스를 제거하지 않는 뒤쪽 있도록을 yor의 도움을
감사합니다, 오메르
네, 어리석은 실수. 많은 감사합니다. –
+1 - 아마'len-1'과'i> = 1' 이겠지만 올바른 생각은 – SwDevMan81
입니다. 기본 통합 문서에 4 개 미만의 워크 시트가있는 한 버그는 해를 끼치 지 않기 때문에 코드가 잘 작동합니다. .. –