我无法弄清楚如何使用VBA删除图表。
起点:
Chart1
,Chart2
和Chart3
Chart2
,移动图表,对象:Chart 1
Chart3
,移动图表,对象:Chart 1
哪些VBA代码会从Chart2
删除所有图表(Chart3
和Chart1
)?
尝试:
'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
答案 0 :(得分:2)
似乎您无法删除该图表。原因是图表被锁定,无法从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