我在图表对象上遇到过低错误。我需要帮助来解决这个问题

问题描述 投票:0回答:1

我收到一条错误消息,通常是以下 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
excel vba charts
1个回答
0
投票

您可能会考虑在创建形状后添加 Doevents 以及等待计时器 (application.wait)。 使用干净的 Excel 进行尝试(因此空办公室剪贴板,没有打开其他工作簿)。如果您使用 32 位 Excel,则更有可能出现内存问题(请参阅此处了解更多信息)。 您也可以考虑在代码末尾释放使用过的对象(例如 sht= Nothing 等) 调试代码的时候是不是也崩溃了?

© www.soinside.com 2019 - 2024. All rights reserved.