VBA Inputbox обслуживания при отмене - PullRequest
0 голосов
/ 16 апреля 2020

Я ищу способ ввода ввода только при вводе целого числа 1-12. Любая строка в нем, двойное значение, пустое или кнопка ESCAPE (отмена) будет вызывать Exit Sub

Я знаю, что в сети много примеров, я попробовал их все! но всегда в ESCAPE или в другом случае он получает ошибку.

пока у меня есть это, но он получает ошибку по CANCEL:

dMonth = InputBox("Which month to count?", "Choose month", Format(Date, "m") - 1)
If (Not (Int(dMonth) >= 0 And Int(dMonth) <= 12)) Or StrPtr(dMonth) = 0 Or StrPtr(dMonth) = 698279968 Or dMonth = "" Then Exit Sub

Любой совет или идеи?

Спасибо

1 Ответ

1 голос
/ 16 апреля 2020

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

Private Sub Command1_Click()
   Dim sMonth As String
   Dim dMonth As Double

   sMonth = InputBox("Which month to count?", "Choose month", Format(Date, "m") - 1)
   dMonth = Val(sMonth)                         'convert user input to numeric
   If dMonth <> Fix(dMonth) Then Exit Sub       'check for an integer
   If dMonth < 1 Or dMonth > 12 Then Exit Sub   'check for required range

   MsgBox dMonth
End Sub
...