VBScript入门者求助:如何避免MsgBox重复弹窗问题
解决VBScript重复弹出MsgBox的问题
你的问题出在代码逐行检查匹配时,每匹配到一次就触发一次弹窗。要避免重复弹窗,只需添加一个标记变量记录是否已经弹出过提示,后续不再重复触发即可。
修改后的代码示例:
' 在遍历行的代码之前,初始化标记变量 Dim hasShownMsg : hasShownMsg = False ' 你的循环读取行逻辑(比如Do While/For Each之类的循环) ' ... ' 原判断逻辑修改如下 If (InStr(currentoption,"INTUM")>0 Or InStr(currentoption,"SHIM")>0) And Not hasShownMsg Then MsgBox "INSTALLER SHIM ET/OU INTUMESCENT ( VOIR W.O. ET CARTABLE INSTRUCTION INSTALLATION DE SHIM ET INTUMESCENT.)" ,vbExclamation hasShownMsg = True ' 弹窗后设置标记,防止再次触发 End If
说明:
hasShownMsg是布尔变量,初始值为False,表示还未弹出提示。- 第一次匹配到
INTUM或SHIM时,Not hasShownMsg为真,执行弹窗并将变量设为True。 - 后续再匹配到相同内容时,
Not hasShownMsg为假,不会再执行MsgBox语句。
注意:要确保hasShownMsg定义在循环外部,保证其状态能在整个遍历过程中保留,不要把变量定义放在循环内部,否则每次循环都会重置为False,仍会重复弹窗。
内容的提问来源于stack exchange,提问作者Deepesh Kumar
相关产品推荐
相关产品推荐

