为什么我的Excel VBA宏需要这么长时间才能运行?

时间:2020-08-18 22:10:21

标签: excel vba performance

我的宏从几张纸上获取x和y坐标,并将它们绘制在图表上,所有这些都在同一工作簿中。该代码运行得很好,几乎可以立即在第一张工作表上绘制数据图表,但是将其他工作表中的数据添加到图表中实际上要花费几分钟。有人可以建议为什么需要这么长时间才能运行,以及我可以如何加快运行速度?谢谢!

代码首先创建一个名为“ Chart”的工作表,然后将x和y数据从名为“ Cluster 1”的工作表绘制到图表上。这是几乎立即运行的部分。然后,代码从名为“ Cluster 2”,“ Cluster 3”等的工作表中获取x和y数据。这是需要几分钟才能运行的部分。

Public Sub MakeClusterChart()
    Application.ScreenUpdating = False
    Sheets.Add.Name = "Chart"
    Sheets("Chart").Select
    ClusterPtr = 1
    Sheets("Cluster " & ClusterPtr).Select
    Columns("A:B").Select
    ActiveSheet.Shapes.AddChart2(240, xlXYScatter).Select
    ActiveChart.SetSourceData Source:=Range("'Cluster " & ClusterPtr & "'!$A:$B")
    ActiveChart.Location Where:=xlLocationAsObject, Name:="Chart"
    For ClusterPtr = 2 To NumClusters
        ActiveChart.SeriesCollection.NewSeries
        ActiveChart.FullSeriesCollection(ClusterPtr).XValues = Range("'Cluster " & ClusterPtr & "'!$A:$A")
        ActiveChart.FullSeriesCollection(ClusterPtr).Values = Range("'Cluster " & ClusterPtr & "'!$B:$B")
    Next
    Application.ScreenUpdating = True
End Sub

0 个答案:

没有答案