用VBA删除子ChartObjects

我无法弄清楚如何用VBA删除图表。

初始点:

  1. 创build空白工作簿
  2. 按F11三次创buildChart1Chart2Chart3
  3. Chart 1 ,移动图表,对象在Chart 1右键单击
  4. 右键单击Chart3 ,Move Chart,Object in: Chart 1

什么VBA代码将从Chart1删除所有图表( Chart2Chart3 )?

尝试:

 'Try 1: Run-time error -2147024809 (80070057): ' The specified value is out of range. Sheets("Chart1").ChartObjects.Delete 'Try 2: (Same error) Charts("Chart1").ChartObjects.Delete 

看来你不能删除那些图表。 原因是图表被locking,无法从VBA或应用程序解锁。

唯一的解决方法,我已经想出了:1.将其移动到任何工作表,2.删除它。

可能的代码可能如下所示:

 Dim myCHART As Chart Set myCHART = Sheets("Chart1") myCHART.ChartObjects(1).Select ActiveChart.Location Where:=xlLocationAsObject, Name:=Worksheets(1).Name Worksheets(1).Shapes(Worksheets(1).Shapes.Count).Delete 

更新的代码:(由Steven提供)

 Do While Charts("Chart1").ChartObjects.Count > 0 Charts("Chart1").ChartObjects(1).Chart.Location xlLocationAsObject, _ Worksheets(1).Name Worksheets(1).Shapes(Worksheets(1).Shapes.Count).Delete Loop