我在Excel中有一个图表,它引用了Sheet1中的大量数据。大约一百个数据系列。
把这张图表放在一起非常费时,还有28张要去。每个人的数据都在同一个地方,但是在不同的表格中。
将Sheet1中的所有引用更改为Sheet2的智能方法是什么,而不更改任何其他内容?
答案 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