首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C# Excel:从不同工作簿复制工作表时出现问题

C# Excel:从不同工作簿复制工作表时出现问题
EN

Stack Overflow用户
提问于 2019-01-16 18:11:51
回答 1查看 236关注 0票数 0

我当前正在尝试从另一个工作簿复制工作表,但我使用Copy()和PasteSpecial()成功了。然而,我想知道为什么下面的代码不能工作,即使许多在线解决方案似乎使用这种方法。

代码语言:javascript
复制
Workbook currBook = Globals.ThisAddIn.GetActiveWorkbook();
Workbook copyBook = Globals.ThisAddIn.OpenWorkbook(Globals.ThisAddIn.Application.ActiveWorkbook.Path + @"\copyFile.xlsm", true, true);

//required worksheet
Worksheet copySheet = Globals.ThisAddIn.GetWorksheet(copyBook, "ToCopy");
copySheet.Copy(currBook.Worksheets[1]);

//close workbook
copyBook.Close();

获取具体表单的函数:

代码语言:javascript
复制
public Excel.Worksheet GetWorksheet(Excel.Workbook book, string sheetName, bool create = false)
{
    foreach (Excel.Worksheet sheet in book.Worksheets)
    {
        //worksheet with name found
        if (sheet.Name == sheetName)
        {
            sheet.Activate();
            return sheet;
        }
    }

    //worksheet can't be found
    if (create)
    {
        Excel.Worksheet sheet = book.Worksheets.Add();
        sheet.Name = sheetName;
        sheet.Activate();
        return sheet;
    }

    return null;
}

所述代码没有错误,并且工作表已被测试为存在。该程序根本不会在currBook中创建副本

EN

回答 1

Stack Overflow用户

发布于 2019-01-17 03:25:16

有趣的是,我只是在做别的事情...

为了指定目的地,必须使用Range.Copy,而不是Sheet.Copy

代码语言:javascript
复制
copySheet.UsedRange.Copy(currBook.Worksheets[1].Range["A1"]); 

如果无法指定目标,则Excel将数据放入新的工作簿中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54214748

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档