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

时间:2016-04-28 02:57:31

标签: excel vba shapes

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

每当我尝试从.name重命名图表时,我都会得到上面提到的运行时错误。 为了解决这个错误,我将.name作为变量(LineSubject),然后尝试在.Shapes(LineSubject)列中使用它,但收到错误,说它无法找到形状的名称。 我还发现人们使用过.Parent.Name ..我可以改变名称但是这不允许我在.Shapes(NAME)空间中输入它。

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上尝试了这个并且发生了同样的错误。

1 个答案:

答案 0 :(得分:0)

您应该在.Name对象上设置Shape属性,而不是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