2015-12-21 56 views
1

我已經做了多個Excel文件試圖解決這個問題。我已經得到了這一點,現在還在收到錯誤這個功能:Activechart.name每次都拋出'內存不足'錯誤

Sub graph1() 
    ActiveChart.Name = IChart 
    MsgBox "done" 
End Sub 

這是在宏啓用高強範圍A1和數值僅數據文件上的工作表1至F754和(手動進行上表)平滑散點圖2.

試圖運行該代碼(與圖表選擇,使ActiveChart有效)我收到錯誤:

Run Time Error '7':Out of Memory

請幫幫忙,我需要能夠名稱所以我可以製作圖表.Axis格式更改,重新調整圖表大小,還有一些其他東西與VBA宏。

+1

只是一個建議,嘗試'ActiveChart.Parent.Name',而不是'ActiveChart.Name'。 – Demetri

+0

我已經嘗試了ActiveChart.Parent方法,然後問題是我不能做我需要做的任何調整大小或格式。就像在下面的例子中,我收到'424'對象所需的錯誤,我需要一個設置,以便我可以創建,移動,調整大小,並使用宏格式化圖表。但是,迄今爲止,感謝您的幫助!示例:Dim Chart As ChartObject Set ic = ActiveChart.Parent Debug.Print ic.Name'檢索圖表對象名稱ic.Name =「IChart」'分配名稱IChart.Axes(xlCategory).CrossesAt = -350 – CompositeMan

+0

您是否需要擁有你的圖表嵌入在工作表中?如果您創建圖表選項卡會更容易 - ActiveWorkbook.Charts(1)是第一個圖表,或者您可以按名稱(如ActiveWorkbook.Charts(「Chart1」))引用它。 – grahamj42

回答

1

請不要將此標記爲答案,因爲Demetri在評論中正確回答了它。
他是正確的,你應該使用:

ActiveChart.Parent.Name = "ChartName" 

或者您可以使用包含您的名字的變量。
爲什麼使用Parent屬性?原因是ActiveChart指向Chart財產的ChartObject和你只能設置Name財產ChartObject

所以基本上,

Dim Co As ChartObject 
Set Co = ActiveChart.Parent 
Debug.Print Co.Name 'retrieve chart object name 
Co.Name = "Chart Name" 'assign name 

我希望這清楚的事情了。

+0

我已經嘗試過ActiveChart.Parent方法,然後問題是我不能做任何的調整大小或格式,我需要做的。就像在下面的例子中,我收到'424'對象所需的錯誤,我需要一個設置,以便我可以創建,移動,調整大小,並使用宏格式化圖表。但是,迄今爲止,感謝您的幫助!例如: 昏暗IC作爲ChartObject 設置IC = ActiveChart.Parent Debug.Print ic.Name '檢索圖表對象名 ic.Name = 「IChart」' 分配名稱 IChart.Axes(xlCategory).CrossesAt = -350 – CompositeMan

+0

@CompositeMan請參閱Demetri的回答。你應該處理這個對象。您分配圖表的名稱不是對象。 – L42

1

如何分配變量類似的下方,使得變化描述:

Function test() 

    Dim ic As Chart 

    ' Somehow assign the chart to a variable 
    Set ic = ActiveChart 
    ' Change the name as desired 
    ic.Parent.Name = IChart 
    ' Change the axes as desired 
    ic.Axes(xlCategory).CrossesAt = -350 

End Function 
+0

謝謝@Demetri我會試試這個 – CompositeMan