Как отличить действие, когда пользователь нажимает кнопку ОТМЕНА или кнопку ОК под полем ввода.

Возможны два сценария:
1. Чтобы завершить (Exit Sub) операцию, когда пользователь нажимает кнопку «Отмена» / «Закрыть»
2. Если пользователь нажимает ОК без какого-либо значения, попросите его ввести какое-либо значение.

Код, который я использую, удовлетворяет 2-му сценарию, возможно ли учесть и 1-й сценарий?

Sub INPUT_BOX()

Re_Enter_Username:
cUsername = INPUTBOX("Username", "Please provide Login Name")
    If cUsername = "" Then
        MsgBox "Please provide a Username"
        GoTo Re_Enter_Username:
    Else 'Code if not empty
    End If

End Sub

Я не уверен, возможно ли это, возможно, мое исключение было больше, чем то, что может предоставить VBA. :) Простите, если так.

И спасибо, если у вас есть решение для этого.

0
mithun nair 13 Ноя 2017 в 17:21

1 ответ

Лучший ответ

Вы можете протестировать использование StrPtr следующим образом:

cusername = InputBox("Username", "Please provide Login Name")
    If StrPtr(cusername) = 0 Then
        ' user pressed Cancel
        Exit Sub
    ElseIf cusername = "" Then
        MsgBox "Please provide a Username"
        GoTo Re_Enter_Username:
    Else 'Code if not empty
    End If
3
Rory 13 Ноя 2017 в 14:24