0

我试图将一个受保护的工作表复制粘贴到另一个 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();
    }                
}

有人能告诉我我在这里做错了什么吗???

或者

请告诉我是否有更好的方法来做到这一点?

谢谢。

4

1 回答 1

2

我会检查:

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

或者

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

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

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

于 2013-03-08T12:00:58.613 回答