Исправление кейс-функции - PullRequest
0 голосов
/ 03 марта 2019

Я пытаюсь реализовать код VBA с функцией ввода.Я получаю результат с помощью IF-функции, но не могу получить результат с помощью CASE-функции.

Это мой код с функцией if, где я правильно получаю вывод:

Sub test3()
Dim x As String

x = InputBox("What is your age?", "just a moment")

If x = "" Then
MsgBox "You did not answer the question!"
Else
    If IsNumeric(x) Then
        Range("A1").Value = "Your Age:"
        Range("B1").Value = x
    Else
        MsgBox "Please input no text"
    End If
End If
End Sub

Я пишу тот же код с той же помощью с CASE-функцией, где я не получаю вывод:

Sub test2()
Dim x As String

x = InputBox("What is your age?", "Just a moment...")

Select Case x

Case Is = ""
   MsgBox "You did not answer the question!"
Case IsNumeric(x)
    Range("A1").Value = "You age:"
    Range("B1").Value = x
Case Else
    MsgBox "Please answer with a numerical value!"
End Select
End Sub

Я очень ценю, если вы можете исправить мой код с помощью CASE-Function!

1 Ответ

0 голосов
/ 04 марта 2019

Предложите использование метода Application.InputBox (Excel) вместо функции InputBox

В InputBox method есть параметр data type, используемый дляопределить значения, которые могут быть приняты методом.

Попробуйте это:

Sub Enter_Age()
Dim bAge As Byte, bTry As Byte

Enter_Age:
    bTry = 1 + bTry
    bAge = Application.InputBox("What is your age?", "just a moment", Type:=1)

    Select Case bAge
    Case False
        If bTry = 3 Then
            MsgBox "You did not answer the question!" & vbLf _
                & vbTab & "Process will be cancelled!"
                Exit Sub
        Else
            MsgBox "You did not answer the question!"
            GoTo Enter_Age
        End If

    Case Else
        Range("A1").Value = "Your Age:"
        Range("B1").Value = bAge

    End Select

    End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...