2010-10-22 20 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