如:窗体一:Sub A()
Form2.B
Debug.Print "After B"
End Sub窗体二:Dim AllowReturn As Boolean
Sub B()
Debug.Print "B"
End Sub
Sub C()
AllowReturn = True
End Sub
窗体一的A函数调用窗体二中的B函数,当B窗体函数执行完后,有没有办法不让B函数返回,就是不让A函数的后续部分(Debug.Print "B")继续执行,只有当AllowReturn = True时长B函数才返回到A函数,A函数才接着执行Debug.Print "B"

解决方案 »

  1.   

    加一段do until AllowReturn
      doevents
    loop可以吗?
      

  2.   

    趁高手没来我先把分抢啦~哈哈===Form1===
    Sub A()
    Form2.B
    Debug.Print "After B"
    End SubPrivate Sub Command1_Click()
    A
    End SubPrivate Sub Command2_Click()
    Form2.C
    End Sub
    ===Form2===Dim AllowReturn As Boolean
    Sub B()
    Do While AllowReturn = False
        DoEvents
    Loop
    Debug.Print "B"
    End Sub
    Sub C()
    AllowReturn = True
    End Sub
      

  3.   

    嫌CPU占用高就用TIMER控件,或settimer函数(API),
    或用在
    Do While AllowReturn = False
        DoEvents
      sleep 1000 'API
    Loop
      

  4.   

    不知道为什么这么做,如果把B()直接放到BAS文件中不行吗?