用VBA删除子ChartObjects
我无法弄清楚如何用VBA删除图表。
初始点:
- 创build空白工作簿
- 按F11三次创build
Chart1
,Chart2
和Chart3
- 在
Chart 1
,移动图表,对象在Chart 1
右键单击 - 右键单击
Chart3
,Move Chart,Object in:Chart 1
什么VBA代码将从Chart1
删除所有图表( Chart2
和Chart3
)?
尝试:
'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