我试图用Excel VBA编写一个显示交通信号图的程序。这些图由类似条纹的图表组成,我当时可以编辑一个图表,此时性能很好。但是,每个条纹下面都有另一个条纹,显示与其他条纹(附带gif)发生冲突。无论如何,每当我编辑主条纹之一时,下面的那些小条纹都会全部从10刷新到40。这就是我遇到性能问题的地方。
在下面的代码中,我显示了我遇到性能问题的宏摘录(绘制多个条纹)。这样,我填充了数组,然后得到了大约10个For Each条件的实例,例如所示的实例。有趣的事实是,即使我禁用了条纹绘制,滞后仍然存在。可能是因为For Each循环引起了滞后(I循环通过每行160个单元)?有什么我可以改进的代码吗?我设置了Application.ScreenUpdating = False和Application.Calculation = xlCalculationManual。 任何帮助表示赞赏。
编辑图滞后: !https://imgur.com/a/jkMwiFv
'populating arrays (about 8 arrays for each stripe)
For i = 1 To arr_size
MZ(i) = mzR.Offset(0, i - 1).Value
Next i
For i = 1 To arr_size
gstart(i) = gst.Offset(0, i - 1).Value
Next i
'For Each conditions (about 10 conditions like that for each stripe)
For Each cell In irow1
For i = 1 To arr_size
If cell > gstart(i) - MZ(i) And gstart(i) > PZ And cell <= KZ Then
cell.Interior.ColorIndex = clrViolate1
Exit For
End If
Next i
Next