将图表复制到 Excel 中更新的引用的另一张工作表

Dan*_*Dan 3 microsoft-office worksheet-function charts microsoft-excel microsoft-excel-2013

我在 Excel 的工作表中制作了一个图表。在工作表中,图表引用工作表中要显示的特定单元格(即包含我的数据点的单元格)。

我想知道如何将图表复制到 Excel 文件中的另一个工作表中,并更新引用以引用新工作表中的单元格地址。

每当您将图表复制粘贴/移动到另一个工作表中时,该图表仍将引用其所在的原始工作表中的单元格。这是因为每当您引用图表中的单元格时,它都会专门引用它所在的工作表做到了(即不是说$T$7:$T$12,而是引用了SHEET'!$T$7:$T$12)。

在图表内的引用中,如果我将引用从 更改SHEET'!$T$7:$T$12$T$7:$T$12(甚至T7:T12),我会收到一条消息,指出我的公式包含错误。

我该如何解决这个问题?

谢谢。

Jon*_*ier 5

处理此问题的最简单方法是复制包含数据和图表的整个工作表,然后将新数据粘贴到复制的工作表中。这是一个足够简单的协议,虽然很耗时,但在我的教程中将图表复制到新工作表并链接到新工作表上的数据中有更多描述。

\n\n

另一种方法是将图表复制到新工作表,使用 VBA 过程修改复制图表中的系列公式,将旧工作表的名称替换为新工作表的名称。VBA 基本上是这样的:

\n\n
Sub FindReplaceSeriesFormula(myChart As Chart, OldText As String, NewText As String)\n  Dim srs As Series\n\n  For Each srs In myChart.SeriesCollection\n    srs.Formula = Replace(srs.Formula, OldText, NewText)\n  Next\nEnd Sub\n
Run Code Online (Sandbox Code Playgroud)\n\n

你会这样称呼它:

\n\n
Sub FixActiveChart()\n  FindReplaceSeriesFormula ActiveChart, "Sheet1", "Sheet2"\nEnd Sub\n
Run Code Online (Sandbox Code Playgroud)\n\n

我讨论了这种方法,并在我的教程更改系列公式 \xe2\x80\x93 改进的例程中提供了一些更多的防弹代码

\n