Подтвердить что ты не робот

Как определить, выбрал ли пользователь отмену InputBox VBA Excel

У меня есть поле ввода с просьбой ввести дату. Как я могу сообщить программе, чтобы она остановилась, если пользователь нажал кнопку отмены или закрыл диалоговое окно ввода, а не нажмите "ОК".

Что-то вроде if str=vbCancel then exit sub

В настоящее время пользователь может нажать "ОК" или "Отменить", но программа все еще работает

str = InputBox(Prompt:="Enter Date MM/DD/YYY", _ Title:="Date Confirmation", Default:=Date) enter image description here

4b9b3361

Ответ 1

Если пользователь нажимает кнопку "Отмена", возвращается строка нулевой длины. Вы не можете отличить это от ввода пустой строки. Однако вы можете создать свой собственный класс 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

Скажет пользователю, что он отменил, когда они удаляют строку по умолчанию, или они нажимают кнопку отмены.

См. Http://msdn.microsoft.com/en-us/library/6z0ak68w(v=vs.90).aspx