2012-12-12 152 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