使用VBA取消链接Excel图表

时间:2017-01-13 16:13:04

标签: excel vba charts sendkeys unlink

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

我的系列会变成数字。 我将其自动化为sendkeys,我知道在线有另一种选择,但我希望解决方案为sendkeys。 基本上选择数据> 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

2 个答案:

答案 0 :(得分:1)

您可以执行以下操作,将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

答案 1 :(得分:0)

尽量避免使用发送密钥。请改用:

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

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

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