4

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

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

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

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

有谁知道如何做到这一点?

4

1 回答 1

3

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

要在 VBA 中做到这一点,这个代码片段是一个很好的起点:

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

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

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

一旦你创建了新的工作簿,并且链接完好无损,就可以很容易地删除所有不需要的东西(计算等)。

于 2009-07-21T14:41:10.073 回答