VB6中能否在Exit Sub后执行代码?含DLL检测场景咨询
在VBA中实现"退出后执行代码"的替代方案
VBA里Exit Sub的作用是立即终止当前过程,一旦执行这条语句,Sub里后面的所有代码都不会再运行,所以不存在"Exit Sub之后执行代码"的直接方法。得换逻辑实现你的需求,针对你的场景给两个可行方案:
方案1:调整条件判断逻辑
把需要执行的代码放到反向判断的分支里,这样不管是否检测到DLL,都能按预期执行对应代码:
If Dir("C:\My Folder\myfile.dll") = "" Then ' 只有当DLL不存在时,才执行这里的代码 'Somecodehere etc End If ' 这里可以放不管DLL是否存在,都要执行的收尾代码
方案2:抽离通用收尾代码为独立过程
如果有必须在退出前执行的通用代码(比如资源释放、日志记录),可以把这些代码单独写成一个Sub,在Exit Sub之前主动调用它:
Sub CheckDLLAndRun() If Dir("C:\My Folder\myfile.dll") <> "" Then ' 检测到DLL,先执行收尾代码再退出 RunFinalCode Exit Sub End If 'Somecodehere etc ' 正常流程结束后也执行收尾代码 RunFinalCode End Sub Sub RunFinalCode() ' 这里放你原本想在Exit Sub之后执行的代码 MsgBox "收尾代码执行完毕" End Sub
另外你提到把Exit Sub放整个代码末尾但没生效,是因为逻辑搞反了:原来的逻辑是检测到DLL就提前退出,如果你把Exit Sub移到末尾,检测到DLL时不会触发这条语句,代码会继续执行后面的内容,自然达不到你要的效果。
内容的提问来源于stack exchange,提问作者NewUser
相关产品推荐
相关产品推荐

