【发布时间】:2021-02-19 00:36:29
【问题描述】:
我想做的事:
如果存在未命名为“宏”的工作表 > 使用 MsgBox 提示用户 > 如果是,则删除所有未命名为“宏”的工作表
但只显示 MsgBox ONCE(如果存在超过 1 个工作表,则不显示每个工作表的 MsgBox)
当前代码有问题: 当“宏”是唯一存在的工作表时,仍然会收到 MsgBox 提示。
当前代码:
Sub reset()
Dim conditionMet As Boolean
Dim answer As Integer
conditionMet = FALSE
answer = MsgBox("There Is already data here. Click Yes To delete reset macro.", vbQuestion + vbYesNo)
Application.DisplayAlerts = FALSE
For Each Sheet In ThisWorkbook.Worksheets
If Sheet.Name <> "Macro" Then
conditionMet = TRUE
Else
Exit Sub
End If
Next Sheet
If conditionMet Then
If answer = vbYes Then
Sheet.Delete
Else
Exit Sub
End If
Else
Exit Sub
End If
Application.DisplayAlerts = TRUE
End Sub
【问题讨论】:
-
您创建的唯一 MsgBox 就在您查看存在的内容之前就位于顶部。还是最后应该有第二个?如果顶部的那个是您正在谈论的那个,并且您希望它仅在 conditionMet 为 True 时显示该 MsgBox,然后将其粘贴在循环之后的
If conditionMet Then语句中。