2012-12-12 154 views
0

我想旋轉我的3D柱形圖。到目前爲止,我有以下幾點:旋轉圖表的X和Y軸

ActiveChart.Name = "44 Chart 7" 

With ActiveChart 
    .SetSourceData Source:=pzx.Range("L126:M135") 
    .HasTitle = False 
    .HasTitle = True 
    .Shapes("44 Chart 7").ThreeD.RotationX = 0 
    .ChartTitle.Text = "Classification Actions" 
    .ChartArea.Font.Color = RGB(0, 0, 140) 
    .ChartTitle.Font.Name = "Arial" 
    .ChartTitle.Font.Size = 10 
    .Legend.Font.Size = 8 
    .Legend.Font.Name = "Arial" 
    .ChartStyle = 11 
    .ChartArea.Format.Line.Visible = msoFalse 
    End With 

我有兩個問題 -

1)什麼決定,如果你不積極命名圖表自己 2)你知道如何圖表被命名爲什麼這個代碼不工作

這是我收到的錯誤 -

運行時錯誤7 內存的

非常感謝!

回答

0

命名對象有命名慣例您必須遵循。對於圖表:當圖表位於工作表上時,Name屬性適用於ChartObject對象,該對象是圖表的容器

With Chart 
    .Parent.Name = "myChartName" 
End With 

`Sheets(1).ChartObjects(3).Name = "Name of my Chart"` 

`Sheets(1).Charts("My old Chart Name").Name = "Name of my Chart"` 

如果你知道你的圖表居住,點與表引用圖表上在安全方面比使用ActiveChart。如果您沒有主動命名圖表,則必須使用圖表的默認原始名稱來引用它。或其索引。

請在你的最後嘗試這段代碼。

Option Explicit 

Sub createMyCharts 
Dim mySheet As Worksheet 
Dim mychtObject As ChartObject 
Dim myChart As Chart 

'-- put anything else you need to delcare and set 

Set mySheet = Worksheets(1) '-- set according to your sheet 

'-- delete any old leftovers to clean up 
For Each mychtObject In mySheet.ChartObjects 
    mychtObject.Delete 
Next 

'-- create new chart 
Set myChart = mySheet.ChartObjects.Add(Left:=30, Width:=500, Top:=30, Height:=200).Chart 

With myChart 
    .ChartType = Excel.XlChartType.xl3DColumn '-- the full chart Type 
    .SetSourceData(mySheet.Range("L126", "M135"), Excel.XlRowCol.xlColumns) 
    .Rotation = 30 
End With 

'-- do anything else you need to do 

末次

參考MSDN Chart Rotation

嘗試了,你可以發表評論,並樂意幫助futher如果您有任何問題之後。 :)

+0

我也用過.elevation,.Perspective,還有.Rotation。謝謝! – Chris2015