VBA - 形状 - .name - 运行时错误“7”:内存不足

VBA - Shapes - .name - Runtime error '7': Out of Memory

几天来我到处找,似乎没有人遇到我的问题。我正在尝试使用来自不同工作表的信息制作嵌入式图表并对其进行操作(调整大小等)

每当我尝试从 .name 重命名图表时,我都会收到提到的 运行 时间错误。 为了尝试解决此错误,我将 .name 设为变量 (LineSubject),然后尝试在 .Shapes(LineSubject) 列中使用它,但收到一条错误消息,指出它无法找到形状的名称。 我还发现人们使用过 .Parent.Name.. 我可以更改名称但是这不允许我在 .Shapes(NAME) space.

中输入它
Set wLineGraphs = ActiveWorkbook.Sheets("Graphs")
wLineGraphs.Activate

ActiveSheet.Shapes.AddChart2(332, xlLineMarkers).Select
Set LineChart = ActiveChart
    With LineChart
        .ChartType = xlLineMarkers
        .SetSourceData Source:=wGraphd.Range("A96:K99")
        .ApplyLayout (3)
        .ChartTitle.Text = HistRange
        .Name = GraphNumber <-- Error Here
        '.Parent.Name = GraphNumber
   'Parent.Name spits out "Chart 2"
        'LineSubject = .Name
   '.Name spits out "Graph Chart 2"
        '.Shapes("Chart 2").Top = wLineGraphs.Cells(360, 2).Top
        '.Shapes(LineSubject).Left = wLineGraphs.Cells(360, 2).Left
    End With

我正在寻找的最终结果是能够在 .Shapes(INSERTNAME) 中使用图表的名称,这样我就可以自由地操作图表。

感谢您的帮助:) p.s 我使用的是 Excel 2016,我也在 Excel 2010 上尝试过,但出现了同样的错误。

您应该在 Shape 对象上设置 .Name 属性 而不是 Chart:

With ActiveSheet.Shapes.AddChart(332, xlLineMarkers)
    .Name = "name"
    With .Chart
        .ChartType = xlLineMarkers
        .ApplyLayout 3
        .SetSourceData Source:=ActiveSheet.Range("A96:K99")
        .ChartTitle.text = "title"
    End With

End With