如何检测用户是否选择取消InputBox VBA Excel

use*_*670 21 excel vba

我有一个输入框,要求用户输入日期.如果用户单击取消或关闭输入对话框而不是按下确定,如何让程序知道停止.

就像是 if str=vbCancel then exit sub

目前,用户可以点击OK或取消,但该程序仍然运行

str = InputBox(Prompt:="Enter Date MM/DD/YYY", _ Title:="Date Confirmation", Default:=Date) 在此输入图像描述

djv*_*djv 31

如果用户单击"取消",则返回零长度字符串.您无法将其与输入空字符串区分开来.但是,您可以创建自己的自定义InputBox类...

你的榜样

Private Sub test()
    Dim result As String
    result = InputBox("Enter Date MM/DD/YYY", "Date Confirmation", Now)
    If StrPtr(result) = 0 Then
        MsgBox ("User canceled!")
    ElseIf value = vbNullString Then
        MsgBox ("User didn't enter anything!")
    Else
        MsgBox ("User entered " & result)
    End If
End Sub
Run Code Online (Sandbox Code Playgroud)

告诉用户他们删除默认字符串时取消,或者点击取消.

请参阅http://msdn.microsoft.com/en-us/library/6z0ak68w(v=vs.90).aspx

  • 谢谢 - 它应该是 Vbnullstring 而不是 vbCancel (2认同)