Excel图表 - 如何更改对另一个工作表的所有引用?

时间:2014-05-09 08:45:20

标签: excel-2003

我在Excel中有一个图表,它引用了Sheet1中的大量数据。大约一百个数据系列。

把这张图表放在一起非常费时,还有28张要去。每个人的数据都在同一个地方,但是在不同的表格中。

将Sheet1中的所有引用更改为Sheet2的智能方法是什么,而不更改任何其他内容?

1 个答案:

答案 0 :(得分:2)

我写了一篇关于Excel图表系列公式的教程Change Series Formula – Improved Routines,其中包括一些用于修改公式的VBA例程。您可以自己使用已发布的VBA例程,它们也包含在我的商业Excel加载项软件中。

在最简单的形式中,更改图表中系列公式的例程如下:

Sub ChangeChartSeriesFormulas(cht As Chart, sOldString As String, sNewString As String)

  Dim srs As Series, sOldFmla As String, sNewFmla As String

  For Each srs In cht.SeriesCollection

    sOldFmla = srs.Formula
    sNewFmla = WorksheetFunction.Substitute(sOldFmla, sOldString, sNewString)
    srs.Formula = sNewFmla

  Next srs

End Sub

从您的代码中调用此函数来确定要更改的图表,并要求用户查找和替换字符串。

执行活动图表:

ChangeChartSeriesFormulas ActiveChart, "Sheet1", "Sheet2"

要在活动工作表上执行所有图表:

Dim chob As ChartObject
For Each chob In ActiveSheet.ChartObjects
  ChangeChartSeriesFormulas chob.Chart, "Sheet1", "Sheet2"
Next