我收到一条错误消息,通常是以下 3 条之一
“6:溢出”
-2147467259:对象“_Chart”的方法“HasTitle”失败
-2147467259:自动化错误,未指定错误
“发生在“.hasTitle = true”或任何修改图表的尝试上 当我重新启动电脑时,编写的代码(不同的变量名称)可以工作。 但运行几次后,我得到了错误。 这似乎表明存在内存泄漏
Sub testCode()
Dim sht As Worksheet
Dim shp As Shape
Dim chrt As Chart
Dim i As Integer
Set sht = ThisWorkbook.Sheets(1)
On Error Resume Next
If (sht.Shapes.Count > 0) Then
For i = sht.Shapes.Count To 1 Step -1
sht.Shapes.Item(i).Delete
Next i
End If
On Error GoTo errorHandle
' create a base progress chart. Later I will add multiple series programmatically
sht.Cells(27, 1).Select ' select range below any existing data so chart will be empty
Set shp = sht.Shapes.AddChart2(227, xlLine, 750, 1, 800, 505)
' Set chrt = shp.Chart
' With chrt
' .HasTitle = True
' .ChartTitle.Caption = "Analysis"
' .HasLegend = True
' End With
shp.Chart.HasTitle = True
shp.Chart.ChartTitle.Caption = "Analysis"
shp.Chart.HasLegend = True
GoTo theEnd
errorHandle:
Debug.Print Int(Err.Number) & ": " & Err.Description
theEnd:
End Sub
您可能会考虑在创建形状后添加 Doevents 以及等待计时器 (application.wait)。 使用干净的 Excel 进行尝试(因此空办公室剪贴板,没有打开其他工作簿)。如果您使用 32 位 Excel,则更有可能出现内存问题(请参阅此处了解更多信息)。 您也可以考虑在代码末尾释放使用过的对象(例如 sht= Nothing 等) 调试代码的时候是不是也崩溃了?