Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 21.04.2008, 14:47   #1
yourself
Пользователь
 
Аватар для yourself
 
Регистрация: 10.11.2007
Сообщений: 38
По умолчанию Проверка введенного значения

Доброе время суток, уважаемые форумчане. Я завис на такой вещи, как проверка введенного в текстовое поле значения на корректность. А именно: есть текстовое поле, которое называется beg. В него будет вводиться номер месяца в учебном году (с сентября по июнь, сентябрь - 9, июнь - 6, 7 и 8 - каникулы, не в счет). В паскале все просто, try и except, а вот насчет такого блока в VBA я не знаю... Долго мудрил, в результате получился скрипт:
Код:
Private Sub go_Click()
Dim a As String
If Not (beg.Text = "") Then
a = beg.Text
If IsNumeric(a) = True Then
If (CInt(a) <= 6) And (CInt(a) >= 9) Then
MsgBox ("Все верно")
Else
MsgBox ("Введите номер месяца корректно")
End If
Else
MsgBox ("Введите номер месяца корректно")
End If
Else
MsgBox ("Введите номер месяца")
End If
End Sub
В результате выполнения этого скрипта мне в любом случае выдается сообщение о том, что номер месяца надо ввести корректно. Как правильно сделать, чтобы оно отличало числовое значение в текстовом поле от строкового?
yourself вне форума
Старый 21.04.2008, 15:43   #2
IgorGO
Новичок
СтарожилДжуниор
 
Аватар для IgorGO
 
Регистрация: 05.02.2008
Сообщений: 9,487
По умолчанию

Я бы поработал над условиями проверки:

Цитата:
If (CInt(a) <= 6) And (CInt(a) >= 9) Then
на моей памяти ни разу не встречались числа, которые бы были одновременно меньше равны 6 и больше равны 9. Напишите, пожалуйста, если этот макрос быросит когда-нибудь окошко с текстом "Все верно".
Программисты - это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете
IgorGO вне форума
Старый 21.04.2008, 15:59   #3
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Действительно.
Но я бы сделал проще: вместо двух проверок - одну:
Код:
If Asc(a) < 57 And Asc(a) > 53 Then MsgBox ("Все верно") Else _
        MsgBox "Введите номер месяца корректно"
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Старый 21.04.2008, 16:23   #4
yourself
Пользователь
 
Аватар для yourself
 
Регистрация: 10.11.2007
Сообщений: 38
По умолчанию

SAS888, такую проверку здесь применить невозможно, так как есть еще месяцы с ноября по декабрь, под двузначными номерами.
IgorGO, ну конечно, это моя вечная проблема! Исправил условие следующим образом:
Код:
If Not ((CInt(a) > 6) And (CInt(a) < 9)) And (CInt(a) <> 0) And (CInt(a) >= 1) And (CInt(a) <= 12) Then
MsgBox ("Все верно")
Всем спасибо
yourself вне форума
Старый 21.04.2008, 18:40   #5
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Если предложенный мною код выполнять по событию TextBox1_Change, то все будет работать корректно.
Чем шире угол зрения, тем он тупее.
SAS888 вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Сумма цифр введенного трехзначного числа. Дельфи by -ORTODOX- Помощь студентам 20 02.02.2011 14:21
Вывод значения Febreze Общие вопросы Delphi 13 26.04.2008 07:47
выбор значения SveSve Microsoft Office Excel 2 16.04.2008 19:13
Разложение введенного слова в виде дерева на дельфи Gauss Общие вопросы Delphi 7 23.03.2008 21:57
Повторяющиеся значения в БД. cpGrey БД в Delphi 4 29.01.2008 18:32