Анимация движения листа Label - PullRequest
0 голосов
/ 21 января 2020

Я пытаюсь переместить ярлык из одной ячейки в другую. Я выяснил смещение положения и создал 3 «анимации», как их называют аниматоры. Но когда я запускаю код, Метка не отображается до тех пор, пока не закончится суб. Если я закомментирую последнюю позицию, ярлык будет в правильном месте. Как сделать так, чтобы Excel обновил экран, чтобы показать метку, прежде чем переместить ее снова?

xo и yo - это целые числа -1, 0 или 1. playerLocation - это диапазон, также может быть ActiveCell.

Sub moveAnimation()

Dim moveAnim As OLEObject
Set moveAnim = Worksheets(currentSheet).OLEObjects(currentSheet & "player")

moveAnim.Left = playerLocation.Left - 0.5 + yo * (playerLocation.Width / 4)
moveAnim.Top = playerLocation.Top + 0.25 + xo * (playerLocation.Width / 4)
Sleep (25)
moveAnim.Left = playerLocation.Left - 0.5 + yo * (playerLocation.Width / 2)
moveAnim.Top = playerLocation.Top + 0.25 + xo * (playerLocation.Width / 2)
Sleep (25)
moveAnim.Left = playerLocation.Left - 0.5 + yo * 3 * (playerLocation.Width / 4)
moveAnim.Top = playerLocation.Top + 0.25 + xo * 3 * (playerLocation.Width / 4)
Sleep (25)
moveAnim.Left = 0
moveAnim.Top = 0

1 Ответ

0 голосов
/ 21 января 2020

Я понял это. ActiveSheet.Calculate приведет к обновлению, поэтому я помещаю его между каждой позицией

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