VBA条件格式的性能

时间:2019-05-09 13:52:15

标签: excel vba performance conditional-formatting

我试图用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

0 个答案:

没有答案