2010-10-22 2 views
0

Я работаю над задачей, где я должен заполнить некоторые данные в книге excel (используя .NET), а существующие объекты диаграммы будут рисовать линейные графики на основе данных. К сожалению, макрос в книге вызывает ошибку "Unable to set MinimumScaleIsAuto property of Axis class".Excel - не удалось установить свойство MinimumScaleIsAuto класса Axis

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 используется с тех пор (когда пользователи заполняют данные вручную), я сомневаюсь, что я делаю что-то неправильно с автоматическим вводом данных.

Ось 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