将对象设置为excel中当前选定的图表

时间:2015-07-29 06:36:16

标签: excel vba charts

所有

我想将变量cht设置为当前图表。我已经尝试了下面的代码,但由于某种原因,它在名称上添加了一个额外的“图表”。还有另一种方法吗?

Set cht = ActiveSheet.ChartObject(ActiveChart.Name)

此代码不起作用,因为它找不到具有该名称的对象。

msgbox ActiveChart.Name 
当实际名称为“pvtChart1”时,

产生“chart pvtChart1”。是否有另一种方法来引用活动图表?

由于我无法更改的计算机设置,我因未能正确格式化代码而道歉。感谢。

-Rik

2 个答案:

答案 0 :(得分:1)

附加到图表名称的图表是放置此图表的工作表的名称。

您可以检索图表的名称:

MsgBox ActiveChart.Parent.Name

如果要将变量cht设置为当前图表,则无需参考图表集合。你可以这样做:

Set cht = ActiveChart.Parent

答案 1 :(得分:0)

图表嵌入的形状也称为ChartObject。

如果你想引用图表(我怀疑),请使用:

Dim cht As Chart
Set cht = ActiveChart

如果要引用父图表对象:

Dim chtob As ChartObject
Set chtob = ActiveChart.Parent

该图表与图表对象相关,如下所示:

Dim chtob As ChartObject, cht As Chart
Set chtob = ActiveChart.Parent
Set cht = chtob.Chart