我正在尝试旋转我的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 内存不足
非常感谢!
答案 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
尝试后,如果您有任何疑问,可以发表评论并乐意提供帮助。 :)