3

我有一个在 x 轴上有日期的图表,我正在尝试使用 Excel VBA 设置该轴的最大值和最小值。我在同一张表中定义了 MinXAxis 和 MaxXAxis 值,这是我的代码:

Sub UpdateChartAxes()

   With ActiveSheet.ChartObjects("Chart 1").Chart

      .Axes(xlCategory).MinimumScaleIsAuto = False
      .Axes(xlCategory).MinimumScale = Range("MinXAxis").Value
      .Axes(xlCategory).MaximumScaleIsAuto = False
      .Axes(xlCategory).MaximumScale = Range("MaxXAxis").Value

   End With

End Sub

当我运行此代码时,我得到错误 400,没有关于该错误的解释。有什么想法可能会出错吗?

4

2 回答 2

2

Axis.MinimumScale 属性

返回或设置值轴上的最小值。读/写双。

您应该将这些属性应用于 value axis xlValue,而不是 Category 轴。

设置此属性也会设置MinimumScaleIsAuto = False,因此您不需要这些行。

添加如果您使用柱形、条形、线形等图形,则这些图形具有值和类别轴。您只能为值轴设置最小值或最大值。即使您在 (x - y) 周围交换它们,仍然只有一个值和一个类别轴。已编辑一个例外情况是,如果日期被用作类别轴,在这种情况下 Excel 会启用比例设置,因为它会将它们识别为值。

相反,如果您使用散点图,则它同时具有 X 值和 Y 值,并且可以为这些值轴中的每一个指定最大值和最小值。

到目前为止,证明这一切的最简单方法是双击轴并查看是否Axis Options允许您设置最小值和最大值。

于 2013-07-22T21:31:56.330 回答
0

在代码的开头,添加

On Error GoTo ShowErrDescription.

之后End With和之前End Sub,添加以下代码

Exit Sub
ShowErrDescription:
MsgBox Err.Description

这至少应该为您提供有关该错误的更多信息。

于 2013-07-22T21:01:38.033 回答