Проблема с обновлением цвета фона ячейки в Excel дважды в сабе, сменой цвета и обратно - PullRequest
0 голосов
/ 02 апреля 2020

У меня есть макрос, который выполняет некоторые вычисления и рисует график. Поскольку для этого требуется некоторое время (пару секунд), я подумал, что я сделаю видимым для пользователя, что процесс в данный момент выполняется, изменив цвет фона видимой ячейки в начале подпрограммы и вернув его обратно в конец сабвуфера после рисования графика сделан

Так что в основном сабвуфер делает

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.

Кто-нибудь может указать мне на то, что мне не хватает?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...