Excel 2010图表轴未显示

时间:2013-10-02 17:27:04

标签: excel vba excel-vba charts excel-2010

我正在将EXCEL 2003应用程序转换为EXCEL 2010.数据显示正常,但轴不再显示。哪个功能用自动刻度显示轴?

例如:如果在Excel折线图中绘制以下系列。 [0.22,0.33,0.44,0.55,0.66,0.77,0.88,0.99,1.1,1.21,1.32,1.43,1.54,1.65,1.76,1.87,1.98,2.09,2.2] Excel确定y轴值应为[ 0,0.5,1,1.5,2,2.5] [How does Excel determine the axis values for charts? 1。如何使用图表中显示的自动值[0,0.5,1,1.5,2,2.5]制作y轴?

由于

更新了相关代码 -

With ActiveChart
         .SeriesCollection(2).Select
         '.SeriesCollection(2).AxisGroup = 2

         .HasTitle = True
         .ChartTitle.Text = OutputTitle & Chr(10) & ChartTitle2
         .Axes(xlValue).HasTitle = True
         .Axes(xlValue).AxisTitle.Text = AxisTitle1
         .Axes(xlValue).AxisTitle.Font.Bold = False
         .HasAxis(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary) = True
         .Export Filename:=ExportFile, FilterName:="GIF"
End with

如果我取消注释'.SeriesCollection(2).AxisGroup = 2,我将显示y轴,但x轴标签与值不匹配。

当前图表 - enter image description here

显示缩放轴的所需图表 - enter image description here

1 个答案:

答案 0 :(得分:2)

要确保轴正在使用,请执行以下操作:

With xlApp.ActiveChart
        .HasAxis(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary) = True
End With

除非另有说明,否则范围值是自动的:

' Set Axis Scales
    With xlApp.Charts("Chart Name").Axes(2)
        .MinimumScale = 100
        .MaximumScale = 2000
        .MajorUnit = 1000
        .MinorUnit = 100
    End With

为了更加完整,尝试明确地解决每个值和类别,看看是否有帮助。

With xlApp.ActiveChart
  .SeriesCollection(1).XValues = "='sheet name'!R21C4:R46C4"
  .SeriesCollection(1).Values = "='sheet name'!R21C5:R46C5"
  .SeriesCollection(1).Name = "='series name'"
  .SeriesCollection(1).axisgroup = Excel.XlAxisGroup.xlPrimary
  .HasAxis(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary) = True
  .HasAxis(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary) = True
  .Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).HasTitle = True
  .Axes(Excel.XlAxisType.xlCategory, Excel.XlAxisGroup.xlPrimary).AxisTitle.Characters.Text = "x axis"
  .Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).HasTitle = True
  .Axes(Excel.XlAxisType.xlValue, Excel.XlAxisGroup.xlPrimary).AxisTitle.Characters.Text = "y axis"
End With

我看到你的轴组设置为2,你使用的是双轴吗?

设置如下:

.SeriesCollection(2).axisgroup = Excel.XlAxisGroup.xlPrimary

*的 修改 *

要在轴上设置自动缩放:

.Axes(xlValue).MinimumScaleIsAuto = True
.Axes(xlValue).MaximumScaleIsAuto = True
.Axes(xlValue).MinorUnitIsAuto = True
.Axes().MajorUnitIsAuto = True
.Axes().DisplayUnit = xlHundreds