当您进入子例程时,事件可以触发吗?

时间:2018-07-13 21:27:09

标签: excel vba

我意识到我移动图像的算法是一团糟,但是现在并不重要。我的问题确实与以下内容有关-是否可以将其设置为当我双击dblclick事件触发时,将doubleClicked更改为false,然后退出我的循环?

Dim orginx As Long
Dim originy As Long
Dim doubleClicked As Boolean

Private Sub Image1_Click()
    doubleClicked = False

    originx = Image1.Left
    originy = Image1.Top

    Do
    If originx / 2 > 1 Then
        Do
        Image1.Left = originx - 2
        Image1.Top = originy - 2
        originx = Image1.Left
        originy = Image1.Top
        Loop Until originx / 2 < 1
    Else
        Do
        Image1.Left = originx + 2
        Image1.Top = originy + 2
        originx = Image1.Left
        originy = Image1.Top
        Loop Until originx + 2 > 432
    End If
    Loop Until doubleClicked = True
End Sub

Private Sub Image1_DblClick(ByVal Cancel As MSForms.ReturnBoolean)
    doubleClicked = True
End Sub

1 个答案:

答案 0 :(得分:0)

是的。您需要在do循环中添加一个DoEvents()(随处可以执行),但这会带来性能损失。