2013-03-08 62 views
0

我試圖複製粘貼一個保護的工作表到另一個Excel文件,但我真的越來越像C#:拷貝保護的工作表到另一個Excel文件

「無效指數(異常錯誤從HRESULT:0x8002000B(DISP_E_BADINDEX ))」

C#代碼:

try 
{ 
    string startPath = System.IO.Path.GetDirectoryName(
     System.Diagnostics.Process.GetCurrentProcess().MainModule.FileName); 
    string filePath = System.IO.Path.Combine(startPath, strPath); 

    wBook = xCel.Workbooks.Open(filePath); 
    wSheet = (Excel.Worksheet)wBook.Worksheets.get_Item(1); 
    wSheet.Copy(Type.Missing, Type.Missing); 
    wSheet = (Excel.Worksheet)xlApp.Workbooks[0].ActiveSheet; 
    //wSheet = (Excel.Worksheet)xlApp.Workbooks[1].Sheets[1]; 
} 
finally 
{ 
    if (wBook != null) 
    { 
     wBook.Close(); 
    } 
    if (xlApp != null) 
    { 
     xlApp.Quit(); 
    }     
} 
莫非

有人電話做錯了什麼我真的在這裏???

OR

請告訴我,如果有任何更好的方法來做到這一點?

謝謝。

回答

1

我會檢查:

wSheet = (Excel.Worksheet)wBook.Worksheets.get_Item(1); 

wSheet = (Excel.Worksheet)xlApp.Workbooks[0].ActiveSheet; 

你的錯誤似乎表明無論是wBook或xlApp中沒有任何價值。這就是爲什麼該指數將是無效的(也相當的工作簿或工作表是空的。我認爲)

如果它是一個受保護的工作表,也不會其保護你停止複製它的事實呢?

+0

挖掘機:感謝您的回答。我看到「xlApp」的activesheet爲空,有什麼錯誤?任何想法? – user2144293 2013-03-08 12:07:36

+0

@ user2144293 - xlApp中沒有活動頁。我猜這是練習冊的問題 – 2013-03-08 12:10:51

+0

挖掘者:我不知道該怎麼做,我困住了,有沒有更好的方法你知道? – user2144293 2013-03-08 12:24:02

相關問題