将Excel工作表,宏和图形从一个工作簿复制到另一个工作簿,将链接移动到新工作簿

时间:2009-07-21 05:04:14

标签: excel vba excel-vba copy excel-2003

我有一个包含许多功能的Excel工作簿:

  • 一个面向用户的主要表单
  • 基于面向用户的工作表数据的一个摘要表
  • 许多基于面向用户工作表数据的图表(如图所示,带有单独选项卡的图表类型,而不是工作表中的对象 - 我不确定他们是否有特殊名称或特殊名称属性)
  • 一系列“背景”工作表,用于计算面向用户工作表的值
  • 一个宏,允许用户按照他们希望的任何列对用户工作表进行排序,这在用户工作表的Worksheet_SelectionChange事件中引用

然而,为了分发,我想剔除工作表以简化(和文件大小 - 整个数据查询包含在其中一个工作表上)。我仍然需要计算面向用户工作表的值,但每个数据集只执行一次,因此可以很好地将其复制为格式化值。

然而,麻烦的是将依赖表,图形和宏转移到新工作簿,以便它们不是引用旧工作簿,而是引用工作表的新版本。理想情况下,我想用VBA或其他东西来做这件事,但到目前为止我的谷歌搜索似乎没有太大的相关性。

有谁知道怎么做?

1 个答案:

答案 0 :(得分:3)

我不确定我是否完全理解你的问题,但我认为你想要做的是创建一个新版本的工作簿,其中包含较少的工作表?

要在VBA中执行此操作,此代码段是一个很好的起点:

Sub Macro1()
    ActiveWorkbook.SaveAs Filename:= _
        [your path here]\Book2.xls", FileFormat:=xlNormal, _

    Sheets("Sheet2").Select
    ActiveWindow.SelectedSheets.Delete
End Sub

创建整个工作簿的副本,然后删除不需要的内容将确保链接不引用旧工作簿。

创建新工作簿后,如果链接完好无损,则可以轻松删除不需要的所有内容(计算等)。