C#:将受保护的工作表复制到另一个excel文件

时间:2013-03-08 11:56:30

标签: c# excel-vba vba excel

我试图将一个受保护的工作表粘贴到另一个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 个答案:

答案 0 :(得分:2)

我会检查:

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

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

您的错误似乎表明wBook或xlApp中没有值。这就是索引无效的原因(而且工作簿或工作表是空的。我认为)

如果它是受保护的工作表,那么受保护的事实是否会阻止您复制它?