这在 VBA 中似乎是一件很奇怪的事情,但我很好奇,所以请听我说。我创建了一个程序,可以在单击图像时在屏幕上移动图像。这行得通,虽然没问题,但仍然 - 它行得通。
这是代码:
'Start primitive animation
Private Sub imgBean_Click()
'Limit for movement to right
Dim coordinates, limit As Integer
coordinates = 0
limit = Form.Width
Do While coordinates < limit
coordinates = coordinates + 5
'Move the image
Me.imgBean.Move coordinates
'Needed to add this to see the image move - updates the form
Form.Repaint
Loop
Debug.Print "Coordinates " & coordinates
Debug.Print limit
'Reset the limit
limit = 0
End Sub
如前所述,代码有效 - 但是当图像移动时屏幕被冻结,即我无法关闭表单或与其他组件交互。(这类似于在 Android 环境中阻塞 UI 线程——这是你永远不会做的事情!)
那么有没有办法避免这种情况呢?
谢谢
PS 将焦点设置在表格上会使图像零星出现和消失。