使用 VBA 取消链接 Excel 图表

Unlinking Excel Chart using VBA

您好,我一直在寻找一种解决方案来取消我的图表(在同一工作表中)与值的链接。 为此,我通常会 select 数据,进入公式 (F2),按 F9 并输入

我的系列会变成数字。 我将其自动化为 sendkeys,我知道在线还有另一个选项,但我希望解决方案作为 sendkeys。 基本上 select Data>F2>F9>Enter。如果我手动执行此操作,效果很好。

我的 VBa 代码如下所示

ActiveChart.ChartArea.Select
Application.SendKeys ("^{s}")
ActiveChart.SeriesCollection(2).Select
Application.SendKeys ("{f2}"), True
Application.SendKeys ("{f9}"), True
Application.SendKeys ("{f9}"), True
Application.SendKeys ("~"), True
Application.SendKeys ("^{s}")

ActiveChart.ChartArea.Select
ActiveChart.SeriesCollection(1).Select
Application.SendKeys ("{f2}"), True
Application.SendKeys ("{f9}"), True
Application.SendKeys ("~"), True

然而,第二组数据的一半仍然链接。

提前感谢您的帮助 - LGR

尽量避免使用发送键。改用这个:

ActiveWindow.Selection.ShapeRange(1).LinkFormat.BreakLink

来源:http://www.vbaexpress.com/forum/showthread.php?45829-How-to-break-links-to-excel-chart

编辑:根据 David Zemens 的评论,这适用于嵌入式图表,但不适用于 excel 图表对象

您可以像这样将 Series.Values 引用 转换为 Range 到实际的基础值。

Sub foo()
Dim cht As Chart
Dim srs As Series

Set cht = ActiveChart

For Each srs In cht.SeriesCollection

    srs.Values = srs.Values

Next

End Sub