2016-04-28 164 views
1

我在幾天的時間內到處尋找,沒有人看起來有我的問題。我試圖使用不同工作表中的信息製作嵌入式圖表並對其進行操作(調整大小等)VBA - 形狀 - .name - 運行時錯誤'7':內存不足

每當我嘗試從.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上試過這個,發生了同樣的錯誤。

回答

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 
+0

太謝謝你了!這解決了我的問題! <3 –

+0

如果工作正常,也許您應該將答案標記爲已接受? –