我写的生成散点图和改变图表的一些属性一些Excel的VBA代码。 (代码如下,以供参考。)代码在诸如删除图表图例,删除水平/垂直网格线以及更改X和Y系列等任务中缓慢移动。 Excel的计时器给我每个任务的持续时间如下:VBA图表操纵慢
insert scatterplot: 0.01171875
delete series: 0
plot x vs y: 0.55859375
delete legend: 0.5703125
delete chart title: 0.66015625
remove grid: 1.3046875
format axes: 0
overall: 3.11328125
卸下电网,更改标题,绘制X和Y系列,并删除传说似乎需要很长的时间。我已经搜索了替代方法来编写代码,但一直没有找到有用的东西。代码完全按照预期工作,除了速度慢以外。任何关于什么导致糟糕表现的想法,以及我如何加快这一点?提前致谢。
编辑:我已经关闭屏幕更新与图表工作时。图表是在用户窗体打开时生成/格式化的,如果这有什么不同。
这里是代码中的相关片段:
With ActiveChart
'Delete all series currently in plot
Do While .FullSeriesCollection.Count > 0
.FullSeriesCollection(1).Delete
Loop
'Plot Actual (Y) vs. Inverse Distribution (X)
.SeriesCollection.NewSeries
.FullSeriesCollection(1).XValues = "=" & tempSheetName & "!$C:$C"
.FullSeriesCollection(1).Values = "=" & tempSheetName & "!$A:$A"
'Delete legend
.Legend.Delete
'Delete chart title
.SetElement (msoElementChartTitleNone)
'Remove gridlines
.SetElement (msoElementPrimaryValueGridLinesNone)
.SetElement (msoElementPrimaryCategoryGridLinesNone)
'Format axes
Dim xAxis As Axis, yAxis As Axis
Set xAxis = .Axes(xlCategory)
Set yAxis = .Axes(xlValue)
With yAxis
'Title y axis "actual"
.HasTitle = True
.AxisTitle.Caption = "Actual"
'Add tick marks
.MajorTickMark = xlOutside
End With
With xAxis
'Title x axis by dist type
.HasTitle = True
.AxisTitle.Caption = dist.getDistType
'Add tick marks
.MajorTickMark = xlOutside
End With
End With
您可以发布您的工作簿样本吗? – brettdj