Excel 修改图表空间轴最小值最大值
我正在尝试将图表空间图表的X轴和Y轴边界设置为数据的宽度。但是,以下代码不起作用Excel 修改图表空间轴最小值最大值,excel,vba,charts,Excel,Vba,Charts,我正在尝试将图表空间图表的X轴和Y轴边界设置为数据的宽度。但是,以下代码不起作用 With ChartControl .DataSource = SpdShtCtrl With .Charts.Add .Type = chChartTypeScatterLine With .Axes(chCategoryAxis) .Left = WorksheetFunction.Min(SpdShtCtrl.Range("XValue
With ChartControl
.DataSource = SpdShtCtrl
With .Charts.Add
.Type = chChartTypeScatterLine
With .Axes(chCategoryAxis)
.Left = WorksheetFunction.Min(SpdShtCtrl.Range("XValues"))
.Right = WorksheetFunction.Max(SpdShtCtrl.Range("XValues"))
End With
With .Axes(chValueAxis)
.Bottom = WorksheetFunction.Min(SpdShtCtrl.Range("YValues"))
.Top = WorksheetFunction.Max(SpdShtCtrl.Range("YValues"))
End With
'...
End With
End With
.Right
方法失败,错误为“参数数目错误或属性分配无效”。我理解这一点,因为在检查时,.Right
和.Bottom
属性是只读的,而.Left
和.Top
属性是读/写的。然而,我不明白为什么会这样
注释掉.Right
和.Bottom
调用可以很好地编译,但调用.Left
方法时出现运行时错误,该方法表示“现在是更改布局的不适当时间。”
为图表空间图表设置X轴和Y轴边界的正确方法是什么?我似乎在任何地方都找不到这方面的信息。方法错误
原来我找错了方向。设置.Left
属性会移动屏幕上的轴,而不会更改打印的最小数据值!如果有人想知道,我已经包括了.Left
属性的正确用法
我用和的组合找到了答案。它涉及在ChartSpace
.AllowLayoutEvents = True
以及为图表空间上的AfterLayout
事件创建事件处理程序
Private Sub ChartControl_AfterLayout(ByVal drawObject As OWC11.ChChartDraw)
ChartControl.Charts(0).Axes(chCategoryAxis).Left = _
WorksheetFunction.Min(SpdShtCtrl.Range("XValues"))
End Sub
工作方法
我真正想做的是设置该系列的.Scalings
属性,即
With ChartControl.SeriesCollection(0)
.Scalings(chDimXValues).Minimum = bla
.Scalings(chDimXValues).Maximum = bla
.Scalings(chDimYValues).Minimum = bla
.Scalings(chDimYValues).Maximum = bla
End With