【问题标题】:C#:Copy protected worksheet to another excel fileC#:将受保护的工作表复制到另一个 excel 文件
【发布时间】:2013-03-08 20:44:51
【问题描述】:

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

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

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

谢谢。

【问题讨论】:

    标签: c# excel vba


    【解决方案1】:

    我会检查:

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

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

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

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

    【讨论】:

    • 挖掘者:感谢您的回答。我看到“xlApp”s activesheet is null,whats 错了吗?有什么想法吗?
    • @user2144293 - xlApp 中没有活动表。我猜这是工作簿的问题
    • Digger:我不知道该怎么办,我卡住了,你知道有什么更好的方法吗?
    • 你也可以使用wSheet = wBook.Sheets[1];,此时你根本没有使用wBook对象!
    猜你喜欢
    • 2015-03-04
    • 1970-01-01
    • 1970-01-01
    • 2018-07-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-10-18
    相关资源
    最近更新 更多