旋转图表的X轴和Y轴

时间:2012-12-12 01:53:39

标签: excel-vba vba excel

我正在尝试旋转我的3D柱形图。到目前为止,我有以下内容:

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 内存不足

非常感谢!

1 个答案:

答案 0 :(得分: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

End Sub

参考MSDN Chart Rotation

尝试后,如果您有任何疑问,可以发表评论并乐意提供帮助。 :)