录制的macros不能在图表对象上工作

我logging了下面的macros:

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 

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

谢谢。

以下是它的含义:你的图表不是表格上的对象,而是表格。

所以,当你使用ActiveSheet.ChartObjects("Graphique 1").Activate开始你的代码,在你的工作表没有findChartObjects ,因为工作表是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" 

这应该工作得很好。 我注意到,当我看图表标签时,我无法进入任何单元格。 这并不是不正常的,但它不是创build图表的最常见的方式(我看到)。 为了validation,我在ActiveSheet上添加了一个监视器 ,并且看到它确实是一个图表(types为Object/Graph2 ),其中所有正常的图表方法都可用。

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


作为一个侧面说明,使用ActiveSheet并不总是有效的,通常更好地显式调用工作表,即Set CO = ThisWorkbook.Sheets("Rejets Techniques TGC")

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

2 – 检查好的工作表是否包含精确的“Graphique 1”名称的图表。 也许有一个下划线,如“Graphique_1”,或没有空格“Graphique1”…