2013-09-26 3 views
0

У меня есть таблица с Max Min для каждого линейного графика. Я хочу создать макрос, который будет обновлять каждый график строки (всего 40) таблицы. Пожалуйста, порекомендуйте.Обновление линейного графика на основе таблицы

Вот что у меня есть. Я уверен, что его плохо написано, поскольку я начинаю учиться писать VBA.

Sub Update_Slope() 

    With Chart(2).Axes(xlValue, xlPrimary) 
     .MaximumScale = ActiveSheet.Range("F58").Value 
      ' Constant value 
     .MinimumScale = ActiveSheet.Range("F68").Value 
      ' Constant Value 

    With Chart(4).Axes(xlValue, xlPrimary) 
     .MaximumScale = ActiveSheet.Range("F59").Value 
      ' Constant value 
     .MinimumScale = ActiveSheet.Range("F69").Value 
      ' Constant Value 
    End With 
End Sub 
+0

Какие ошибки/проблемы, где? – pnuts

+0

Что такое Sub (update_slope)? .. это должно быть Sub update_slope(). –

+0

В нем говорится, что «суб или функция не определена» относится к диаграмме. Я не был уверен, правильно ли я имел в виду объекты диаграммы. –

ответ

0

UNTESTED

Sub Update_Slope() 
    ActiveSheet.ChartObjects("Chart(2)").Activate 
    ActiveChart.Axes(xlCategory).MinimumScale = Range("F68").Value 
    ActiveChart.Axes(xlCategory).MaximumScale = Range("F58").Value 

    ActiveSheet.ChartObjects("Chart(4)").Activate 
    ActiveChart.Axes(xlCategory).MinimumScale = Range("F69").Value 
    ActiveChart.Axes(xlCategory).MaximumScale = Range("F59").Value 
End Sub 
0
Sub Update_All_Slopes() 

    Dim co, sht as WorkSheet 

    Set sht = Activesheet 
    Set co = sht.ChartObjects 

    'ideally you're looping through your table range to do this, instead 
    ' of hard-coding each line. Need more info on how your sheet is set up 
    ' and how to identify which chart should be updated... 
    FixYAxis co("Chart2").Chart,sht.Range("F68").Value, sht.Range("F58").Value 
    FixYAxis co("Chart4").Chart,sht.Range("F69").Value, sht.Range("F59").Value 
    '...etc 

End Sub 

Sub FixYAxis(cht as Chart, minVal,maxVal) 
    With cht.Axes(xlValue, xlPrimary) 
     .MaximumScale = maxVal   
     .MinimumScale = minVal 
    End With 
End Sub 
Смежные вопросы