1

我记录了以下宏:

Sheets("Rejets Techniques TGC").Select
ActiveSheet.ChartObjects("Graphique 1").Activate
ActiveChart.Axes(xlCategory).Select
ActiveChart.SeriesCollection(1).Values = "='Données'!$EU$68:$IJ$68"
ActiveChart.SeriesCollection(1).XValues = "='Données'!$EU$1:$IJ$1"

但是,当我尝试启动它时,出现此错误(从法语翻译):

Execution error '-2147024809 (80070057)'
There is no element with this name

怎么会这样?如果没有以这种方式命名的图表,我将无法记录它。(是的,我正在从好工作表中运行它)

谢谢。

4

2 回答 2

2

归结为:您的图表不是工作表的对象,而是工作表。

因此,当您使用ActiveSheet.ChartObjects("Graphique 1").Activate启动代码时,您的工作表中没有ChartObjects找到,因为工作表是Chart. 所以这里是你如何解决它:

Dim CO As Variant
Set CO = ActiveSheet
CO.Axes(xlCategory).Select
CO.SeriesCollection(1).Values = "='Données'!$ET$68:$IJ$68"
CO.SeriesCollection(1).XValues = "='Données'!$ET$1:$IJ$1"

这应该工作得很好。我注意到,当我查看图表选项卡时,我无法进入任何单元格。这不是异常,但它不是创建图表的最常见方式(我所见)。为了验证,我在 上添加了一个手表ActiveSheet,发现它确实是一个图表(类型为Object/Graph2),其中包含所有可用的常规图表方法。

从那里,我只是插入你的代码,转换为CO变量(但你的应该仍然可以ActiveSheet全面使用),并且运行没有错误。


作为旁注,使用ActiveSheet并不总是有效的,通常最好显式调用工作表,即Set CO = ThisWorkbook.Sheets("Rejets Techniques TGC")

于 2013-05-17T15:41:44.893 回答
0

1 - 检查活动工作表是否是包含图表的工作表。或者使用代码中的工作表名称从任何工作表运行它。

2 - 检查好表是否包含具有确切“Graphique 1”名称的图表。也许有一个下划线,比如“Graphique_1”,或者没有空格“Graphique1”......

于 2013-05-17T15:35:53.527 回答