Excel - 无法设置Axis类的MinimumScaleIsAuto属性

时间:2010-10-22 19:54:47

标签: excel charts

我正在开展一项任务,我应该在excel工作簿中填写一些数据(使用.NET),现有的图表对象将根据给定的数据绘制线图。遗憾的是,工作簿中的宏会引发错误"Unable to set MinimumScaleIsAuto property of Axis class"

ActiveSheet.ChartObjects("Chart 1").Activate
ActiveChart.Axes(xlCategory).Select
With ActiveChart.Axes(xlCategory)
    .MinimumScaleIsAuto = True
    .MaximumScaleIsAuto = True
    .BaseUnitIsAuto = True
    .MajorUnit = 2
    .MajorUnitScale = xlMonths
    .MinorUnitIsAuto = True
    .Crosses = xlAutomatic
    .AxisBetweenCategories = False
    .ReversePlotOrder = False
End With

我是VBA的新手,Excel图表和excel文件的原作者不在身边。但是由于excel文件在很长一段时间内都在使用(用户手动填充数据),我怀疑自动数据输入是否有问题。

X轴用日期绘制,Y轴用一些浮点值绘制。

这个错误一直困扰着我,因为我很困难。请有人帮帮我吗?

1 个答案:

答案 0 :(得分:0)

感谢编辑GSerg。 我确实找出了造成这个问题的原因。我发送日期作为我的程序中的字符串,因为我不希望时间组件与日期一起出现。我认为Excel不会将这些视为日期,而是视为字符串。我写了一个小宏来使用CDate函数转换范围内的每个单元格,一切正常。

Sub ConvertStringsToDates(oRange As Range)
    For Each c In oRange.Cells
        c.Value = CDate(c.Value)
        c.NumberFormat = "dd-mmm-yy"
    Next
End Sub