задание по VBA

программирование программы excel VBA

нужно написать процедуру, которая запрашивает сумму премии за квартал и вводит значение в а3. Но так же она должна выводить предупреждение, если десятичные числа введены неправильно, или написано символами, вместо цифр. я не знаю как сделать последнее, помогите пожалуйста) вот код

Sub ZamPrem()
Dim theDefault As String, thePrompt As String, theTitle As String, theReply As String, theB As String, NotIsNumeric As String, OKFlag As String

thePrompt = "Hello, ãðàæäàíèí!" & "Âââåäèòå, ïîæàëóéñòà, ñóììó ïðåìèè çà êâàðòàë ñ ó÷åòîì êîïååê"
theDefault = "Âîò ñþäà"
theTitle = "Ââîä ñóììû ïðåìèè çà êâàðòàë"

Do
theReply = InputBox(thePrompt, theTitle, theDefault)

If theReply = thePrompt Then
Exit Sub
End If
theReply = Trim(theReply)
theB = Val(theReply)


If NotIsNumeric = theReply Then
MsgBox "Ïîâòîðèòå ââîä åùå ðàç, ïîæàëóéñòà," & "Íî ââåäèòå âñå-òàêè ÷èñëî, ãðàæäàíèí!", , theTitle
OKFlag = False

ElseIf theReply = theDefault Then
MsgBox "Âû íè÷åãî íå ââåëè.Ïîâòîðèòå ïîïûòêó, ñäåëàéòå " & "õîòü ÷òî-íèáóäü ñàìè.", , "Ãðàæäàíå æäóò è âîëíóþòñÿ!"
OKFlag = False

Else
OKFlag = True
End If

Loop Until OKFlag = "True"
Worksheets("Ëèñò1").Range("A3").Value = "Ïðåìèÿ=" & theReply
Stop
End Sub


Примечание:
непонятные символы - запись на русском языке)
Ответы:
If NotIsNumeric = theReply Then
Вот эта инструкция у вас - довольно странная.
Первое, проверка IsNumeric подразумевает аргумент, т.е. вот так IsNumeric(НекаяПеременная) и вот если переменная число - проверка выдаст истину, нет - ложь
Not IsNumeric(Переменная) - сия конструкция в случае, если Переменная не содержит число - выдаст Истина, иначе - Ложь
А вы, получается, неявно вводите переменную NotIsNumeric и присваиваете ей значение theReply???


12 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.