所以,
如果我在用户表单中有此功能:
function myFunc() as String
Me.Show vbModal
stringVar = "Second"
end function
我在所述用户窗体上有单独命令按钮的单击事件:
Private Sub cmdbutton_Click()
Unload Me
stringVar = "First"
End Sub
我的问题是,当我从某个地方调用该函数(“MyFunc”)时,按钮的单击事件(“cmdButton”)会在允许该函数继续之前继续处理,还是基本上是抛硬币?这个
stringVar
变量是用户窗体的私有(private)变量。它在该按钮的单击事件中设置,但我想在单击发生后在函数中使用它。 (表格上会有其他组件,计算等...)那么在点击事件完成之前该函数是否有继续处理的风险?如果函数在点击事件之前继续,那么变量将不会被正确设置
最佳答案
My question is, when I call that function ("MyFunc") from somewhere, will the click event of the button ("cmdButton") continue processing before the function is allowed to continue, or is it basically a coin toss?
让我用图片和描述来解释它
stringVar = "Second"
在卸载用户表单之前不会运行。 Unload Me
.但是,这并不意味着之后的任何代码都不会运行。 Unload Me
不像 Exit Do
或 Exit For
.它只是卸载对象,绝不会停止脚本/代码的进一步执行。 stringVar = "First"
它到达End Sub
stringVar = "Second"
希望这是有道理的。如果没有,请随时提出您有任何疑问。
您还可以使用 F8 单步执行代码来查看代码的执行情况。
进一步阅读: Debugging VBA Code
关于events - 用户表单中的事件顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21886108/