Я пытаюсь написать программу в Excel VBA, показывающую диаграммы сигналов трафика.Эта диаграмма состоит из диаграмм в виде полос, которые я редактирую по одной за раз, и в этот момент производительность хорошая.Тем не менее, под каждой из полос есть еще одна полоса, показывающая столкновения с другими полосами (gif прилагаются) .В любом случае, все эти маленькие полосы обновляются одновременно в количестве от 10 до 40, когда я редактирую одну из основных полос.И вот тут у меня проблема с производительностью.
В приведенном ниже коде я показываю выдержки из макроса, с которыми у меня возникают проблемы с производительностью (нарисуйте несколько полос).Таким образом, я заполняю массивы, а затем у меня есть около 10 экземпляров условий For Each, подобных представленному.Интересным фактом является то, что даже когда я отключил рисование полос, задержка все еще есть.Так может ли быть так, что петли For Each вызывают задержку (я делаю 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