【问题标题】:Copying multiple worksheets simultaneously to preserve chart references同时复制多个工作表以保留图表参考
【发布时间】:2009-04-22 18:51:43
【问题描述】:

我在 Excel 中创建了一个包含两个工作表的模板 - 第一个工作表用于漂亮的图表,另一个工作表用于驱动这些图表的数据。我编写了一个 vb.net 2005 应用程序,可以将我的所有数据转储到第二个工作表上,并且图表工作表完美更新。

我想在同一个工作簿中多次执行此报告。 (因此选项卡将显示“Person1 - Chart”、“Person1 - Data”、“Person2 - Chart”、“Person2 - Data”等)

我的解决方案是,对于要为其运行此报告的每个人,复制图表模板,然后复制数据模板。问题是创建的每个图表模板都指向原始数据工作表。如何设置每个图表工作表指向的工作表?

有没有办法成对复制工作表,保持与自己的关系,而不是与父母的关系?

【问题讨论】:

    标签: vb.net excel interop templates worksheet


    【解决方案1】:

    是的,select both sheets 在您使用复制功能之前。如果您是手动操作,请不要忘记事后取消选择,否则您将在两者中都输入数据。

    在 VBA 中:

    Sheets(Array("Chart template", "Data template")).Select
    ActiveWindow.SelectedSheets.Copy After:=Sheets("Data template")
    

    在互操作中:

    App.ActiveWorkbook.Sheets(New String()
            {"Chart template", "Data template"}).Select()
    App.ActiveWindow.SelectedSheets.Copy(After:=
            App.ActiveWorkbook.Sheets("Data template"))
    

    【讨论】:

    • 正是我想要的。谢谢。
    • 哇,甚至在我提供互操作版本之前?
    • 最终对整个工作簿进行了选择 - 但该数组技巧将在以后派上用场。
    【解决方案2】:

    我没有使用编程的应用程序来完成这项工作,但是如果您将数据带到同一张工作表并使用分页预览设置工作表以避免打印数据表,那么您可以复制并粘贴一遍又一遍地工作,您的图表参考将保持有效。

    根据您使用的数据量,这可能不是一个理想的解决方案,但它是我处理这个问题的方式。

    【讨论】:

    • 哦,太聪明了!我仍然想拆分数据(以满足规范),但如果没有办法绕过它,这正是我将采取的方向。谢谢!
    【解决方案3】:

    您可以在复制后修复图表中的引用。

    使用 SetSourceData 方法

    ActiveChart.SetSourceData Source:=Sheets("Sheet1").Range("A3:D7")
    

    【讨论】:

    • 编辑以修复错误的复制评论
    猜你喜欢
    • 1970-01-01
    • 2017-08-21
    • 1970-01-01
    • 2021-06-21
    • 1970-01-01
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2022-09-26
    相关资源
    最近更新 更多