Nic*_*las 21 excel vba excel-vba
在VBA中,有时我们想在某些条件成立后退出程序.但我使用end或exit sub?
Veg*_*ard 52
这有点超出了你的问题范围,但为了避免对VBA新手的读者产生任何混淆:End并且End Sub不一样.他们不执行相同的任务.
End停止所有代码执行,你应该几乎总是使用Exit Sub(或Exit Function分别).
结束停止所有的exectution.虽然这听起来很诱人,但它也会清除所有全局变量和静态变量.(来源)
另请参阅结束语句的MSDN dox
执行时,该
End语句将重置所有模块中的所有模块级变量和所有静态局部变量.要保留这些变量的值,请改用该Stop语句.然后,您可以在保留这些变量的值的同时恢复执行.注意该
End语句突然停止代码执行,而不调用Unload,QueryUnload或Terminate事件或任何其他Visual Basic代码.您不会执行放置在Unload,QueryUnload和Terminate事件中的代码和类模块.从类模块创建的对象将被销毁,使用Open语句打开的文件将被关闭,并且程序使用的内存将被释放.其他程序持有的对象引用无效.
也不是End Sub和Exit Sub相同的.End Sub不能以同样的方式调用Exit Sub,因为编译器不允许它.
这再次意味着你必须Exit Sub这是一个完全合法的操作:
退出Sub
立即退出出现的Sub过程.继续执行调用Sub过程的语句后面的语句.Exit Sub只能在Sub 过程中使用.
此外,一旦您了解了程序的工作方式,显然End Sub不会清除任何全局变量.但它确实清除了本地(Dim'd)变量:
End Sub
终止此过程的定义.
| 归档时间: |
|
| 查看次数: |
91735 次 |
| 最近记录: |