请各位老师看看我这个代码问题出在什么地方?
这段程序的目的是根据条件选择不同的数据,利用VBA作图,每次作图之前,需要调用Clear_pics过程把上次做过的图表删除掉。我单独测试过,单个利用Clear_pics过程可以把excel里当前的工作薄里面图表删除,但我一旦在test过程里调用Clear_pics时,却总是出错,显示是“运行时错误 应用程序定义或对象定义错误”这个是怎么回事儿?哪儿出问题了?
谢谢
Public Sub Clear_pics()
ActiveSheet.ChartObjects.Delete
End Sub
Sub TEST()
Call Clear_pics '清除工作薄中现有的chartobject对象
If Sheets(2).ComboBox1.Value = "A" And Sheets(2).ComboBox2.Value = "F" Then '根据组合框的数值做出选择
Set mychart = Sheets(2).ChartObjects.Add(110, 100, 300, 150) '定义一个chart 并对其大小位置做出控制
With mychart.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets(3).Range("A1:B6") '选择数据并作图
End With
Else
Set mychart = Sheets(2).ChartObjects.Add(110, 100, 300, 150) '定义一个chart 并对其大小位置做出控制 With mychart.Chart
.ChartType = xlColumnClustered
.SetSourceData Source:=Sheets(3).Range("C1:D6") '选择数据并作图
End With
End If
End Sub LZ有沒有在刪除之前使有圖表的這個sheet為當前活動的sheet呢?如果不是的話(即當前活動的sheet中沒有圖表的話),就會報這個錯誤的
加上
Sheets(2).Activate
Call Clear_pics
試試
补充:VB , VBA