2016-09-18 57 views
0

我正在尝试编写代码来自动更新多个图表上的图表轴。单元格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中的时间序列),图表坐标轴不会更新。但是,当我通过按F2&Enter手动刷新AM5(仅包含= D7)时,图表坐标轴会更新。所以我需要一些代码来放在我已经模拟这个F2&Enter过程的代码之上;我可以记录一个宏,但我假设有一个过程来刷新或重新计算VBA中的单元格,以便图表坐标轴更新。 – DonkeyKong

+0

您是否在代码的其他部分设置了.ScreenUpdating = False。如果是,您可能需要将其设置为True。 –

回答

0

Application.CalculateFullRebuild可能会帮助你。请参阅link。在退出该方法之前将其放置。