2010-10-22 105 views
0

我正在处理一个任务,我应该在Excel工作簿(使用.NET)中填写一些数据,而现有的图表对象将根据给定的数据绘制线图。不幸的是,工作簿中的宏引发错误"Unable to set MinimumScaleIsAuto property of Axis class"Excel - 无法设置Axis类的MinimumScaleIsAuto属性

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轴用一些浮点值绘制。

这个错误一直困扰着我,因为相当长的一段时间,我被困住了。任何人都可以请帮助我吗?

回答

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