Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 修改图表空间轴最小值最大值_Excel_Vba_Charts - Fatal编程技术网

Excel 修改图表空间轴最小值最大值

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

我正在尝试将图表空间图表的X轴和Y轴边界设置为数据的宽度。但是,以下代码不起作用

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