У меня есть макрос, который выполняет некоторые вычисления и рисует график. Поскольку для этого требуется некоторое время (пару секунд), я подумал, что я сделаю видимым для пользователя, что процесс в данный момент выполняется, изменив цвет фона видимой ячейки в начале подпрограммы и вернув его обратно в конец сабвуфера после рисования графика сделан
Так что в основном сабвуфер делает
sub xyz
....
Range("B1").Interior.Color = RGB(255,0,0)
... than doing some heavy looping
Range("B1").Interior.Color = RGB(255,255,255)
... Error Handling ...
End Sub
хмм, довольно просто, подумал я. не работает, как ожидалось.
Если я установлю точку останова и пошагово пройду по сабвуферу, она будет работать, как и ожидалось. Так что я подумал, что это может быть связано с обновлением, выполняемым только после окончания сабвуфера, и, следовательно, с созданием выделенного сабвуфера, например:
Sub updateColor(cellAddress As String, red As Byte, green As Byte, blue As Byte)
On Error GoTo ErrHandler
Range(cellAddress).Interior.Color = RGB(red, green, blue)
Exit Sub
ErrHandler:
Err.Clear
End Sub
sub xyz
....
Call updateColor("B1", 255, 0, 0)
... than doing some heavy looping
Call updateColor("B1", 255, 255, 255)
... Error Handling ...
End Sub
к сожалению, тот же результат. Точка останова и пошаговые работы, но не в одном go.
Кто-нибудь может указать мне на то, что мне не хватает?