我有50多个折线图,每个图表有12个数据系列。每个系列都有2000个数据点。在打开工作簿后,通过设置ActiveSheet.ChartObjects(chart_name).Visible = True
显示图表,每个图表最初需要2秒以上。仔细阅读所有图表(一步一步)进行快速审核,感觉就像是永远在进行。
我正在寻找可以加快显示过程的任何高级技巧或技巧。
我在主题中找到的只是下面的链接,但我不知道它说的是什么。
搜索"部分解决"找到关于他们部分解决方案的确切帖子。
答案 0 :(得分:0)
好吧,我想出了节省时间的方法。我希望我不是只写白板。如果你真的在读这篇文章,请给我一些反馈。
据我所知,每当excel呈现图表时,它都会进入内存,当它再次设置为可见时(隐藏后),该过程速度提高了10倍。在我的情况下,图表的第一次渲染是2.7秒长,但第二次只需0.3秒。当你习惯了快速的工作流程时,2秒以上的感觉就像地狱一样。
不知何故,解决方案正在开始(设置可见)开头的所有图表,以将它们加载到内存中。这比使用测量的2.7s乘以图表的数量要快得多。 50个图表在28s而不是135s中加载。闪烁的图表可能令人沮丧,但是只有一个简单的白色形状作为临时封面也可以解决。
该计划:
ActiveSheet.Shapes("COVER").Visible = True
ActiveSheet.Shapes("COVER").TextFrame.Characters.Text = "Loading charts (0/50)"
For counter = 1 To 50
chart_name = Sheets("Data").Cells(counter , 1)
ActiveSheet.ChartObjects(chart_name).Visible = True
DoEvents
ActiveSheet.ChartObjects(chart_name).Visible = False
ActiveSheet.Shapes("COVER").TextFrame.Characters.Text = "Loading charts (" & counter & "/50)"
Next counter
ActiveSheet.Shapes("COVER").Visible = False
成功,是的。