2016-09-18 3 views
0

Я пытаюсь написать код, который будет автоматически обновлять оси диаграммы на нескольких диаграммах. Cell AM5 содержит =D7, и я думаю, что проблема заключается в том, что AM5 обновляется до правильного значения, оси диаграммы не обновляются.VBA: Обновить ячейки, чтобы обновить оси диаграммы

Если я выбираю AM5, нажмите F2 и Enter без изменения, обновление осей диаграммы, поэтому мне нужно обновить ячейку AM5, даже если значение обновится.

Я ищу код для применения перед кодом ниже для обновления столбцов AM & AN, то есть имитация нажатия F2 + Enter, для всех ячеек.

Код для автоматического обновления осей диаграммы ниже.

Private Sub Worksheet_Change(ByVal Target As Range) 

' Location1 plots 
    With Worksheets("Location1_Plots").ChartObjects("ABC48hr").Chart 
    Select Case Target.Address 
     Case "$AM$6" 
     .Axes(xlCategory).MaximumScale = Target.Value 
     Case "$AM$5" 
     .Axes(xlCategory).MinimumScale = Target.Value 
     Case "$AN$6" 
     .Axes(xlValue).MaximumScale = Target.Value 
     Case "$AN$5" 
     .Axes(xlValue).MinimumScale = Target.Value 
    End Select 
    End With 
    With Worksheets("Location_Plots").ChartObjects("ABC5Day").Chart 
    Select Case Target.Address 
     Case "$AM$12" 
     .Axes(xlCategory).MaximumScale = Target.Value 
     Case "$AM$11" 
     .Axes(xlCategory).MinimumScale = Target.Value 
     Case "$AN$12" 
     .Axes(xlValue).MaximumScale = Target.Value 
     Case "$AN$11" 
     .Axes(xlValue).MinimumScale = Target.Value 
    End Select 
    End With 
End Sub 
+0

поэтому в чем вопрос? вы получаете сообщение об ошибке? –

+0

Ошибка, но когда я изменяю дату начала, если временной ряд в D7, оси диаграммы не обновляются. Однако, когда я вручную обновляю AM5, который содержит только = D7, нажав F2 & Enter, оси диаграммы обновляются. Поэтому мне нужно немного кода, чтобы сидеть над кодом, который у меня уже есть, чтобы имитировать этот процесс F2 & Enter; Я могу записать макрос, но я предполагаю, что есть процесс обновления или пересчета ячеек в VBA, чтобы оси диаграммы обновлялись. – DonkeyKong

+0

Вы установили .ScreenUpdating = False, в другой части кода. Если да, вы можете потребовать установить True. –

ответ

0

Application.CalculateFullRebuild может вам помочь. См. link. Поместите его перед тем, как выйти из метода.

Смежные вопросы