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

我已经到处寻找了几天,没有人看起来有我的问题。 我正在尝试使用不同工作表中的信息制作embedded式图表并对其进行操作(resize等)

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

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)中使用图表的名称,所以我可以自由地操纵图表。

谢谢你的帮助:) ps我正在使用Excel 2016,我也在Excel 2010上试过这个,发生了同样的错误。

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

 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