为两个限制设置X和Y轴

时间:2017-11-30 13:34:45

标签: excel vba excel-vba

我似乎无法使用此代码。我得到运行时错误13'类型不匹配'。如代码所示,我想从Z6:Z9中的范围设置X和Y轴值。

Sub Axis()
    Dim Cht As ChartObject
    Set Cht = Worksheets("Data Input & Summary").ChartObjects("Chart 2").Chart
    With Cht.Axes(xlCategory)
    .MaximumScale = .Range("Z7").Value
    .MinimumScale = .Range("Z6").Value
    End With
    With Cht.Axes(xlValue)
    .MaximumScale = .Range("Z9").Value
    .MinimumScale = .Range("Z8").Value
    End With
End Sub

1 个答案:

答案 0 :(得分:2)

通常,您的代码中有大约3个错误。 这就是它应该是这样的:

Sub AxisSomething()

    Dim Cht As ChartObject
    Set Cht = Worksheets(1).ChartObjects(1)

    With Cht.Chart.Axes(xlCategory)
        .MaximumScale = Worksheets(1).Range("Z7").Value
        .MinimumScale = Worksheets(1).Range("Z6").Value
    End With

    With Cht.Chart.Axes(xlValue)
        .MaximumScale = Worksheets(1).Range("Z9").Value
        .MinimumScale = Worksheets(1).Range("Z8").Value
    End With

End Sub
  • 您将Cht声明为ChartObject,但您将其设置为图表。
  • 如果您将其声明为ChartObject,要获取.Axes,您应该参考图表对象的.Chart
  • 每当您使用.时,它都会引用上面的with.Range不应引用Chart.Axes(xlCategory)
  • 最后但并非最不重要 - 当您将代码上传到StackOverflow时,最好将其设为“可复制”。因此,Worksheets("Data Input & Summary")的instad写Worksheets(1)。然后自己修改名称。