【问题标题】:Add "Are you sure?" to my excel button, how can I?添加“你确定吗?”到我的excel按钮,我该怎么办?
【发布时间】:2012-01-24 01:24:52
【问题描述】:

我的表单上有一个按钮,可以清除整个 8 张工作簿。我确实想偶尔清除它,但我不想意外地这样做。我试过用谷歌搜索它,但我发现的每一个结果都假设我对 VBA 的掌握比我更牢固。我怎样才能做到这一点,当单击按钮时会弹出一个对话框说“这将删除所有内容!你确定吗?[继续] [取消]”? 谢谢。

【问题讨论】:

    标签: vba excel dialog


    【解决方案1】:

    只需制作一个自定义用户表单,在按下“删除”按钮时显示,然后将继续按钮链接到执行删除的实际代码。使取消按钮隐藏用户窗体。

    【讨论】:

      【解决方案2】:

      使用以下代码创建一个新子并将其分配给您的按钮。将“DeleteProcess”更改为您的代码名称以进行删除。这将弹出一个带有 OK 或 Cancel 的框,如果您点击 OK 将调用您的删除子,如果您点击取消则不会。

      Sub AreYouSure()
      
      Dim Sure As Integer
      
      Sure = MsgBox("Are you sure?", vbOKCancel)
      If Sure = 1 Then Call DeleteProcess
      
      End Sub
      

      杰西

      【讨论】:

        【解决方案3】:

        在您现有的按钮代码上,只需在程序之前插入这一行:

        If MsgBox("This will erase everything! Are you sure?", vbYesNo) = vbNo Then Exit Sub
        

        如果用户按否,这将强制它退出。

        【讨论】:

        • +1 同意@brettdj。通常最好使用常量来提高可读性和可维护性。
        • +1 我喜欢这个答案,但严格来说,If MsgBox("This will erase everything, are you sure?", vbOKCancel) = vbOK Then 会更接近,因为他要求ContinueCancel 按钮。
        • @JP。 - 我很高兴看到你的评论,因为我认为 OK/Cancel 更合适,但你的 If/Then 逻辑倒退了……它应该是... = vbCancel Then...。尽管如此,+1 因为一点 If/Then 逻辑并没有超出我的范围。 (:
        • 没错,它更符合最初的问题,但是“你确定吗?”对我调用 Yes/No 而不是 Cancel。
        猜你喜欢
        • 2022-12-06
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-05-12
        • 2021-10-01
        • 2013-12-17
        • 1970-01-01
        • 2022-01-07
        相关资源
        最近更新 更多