Сделала форму, есть SpinButton и TextBox, связанные между собой. При вводе в текстбокс дробного числа (допустим, 4,6), оно округляется в большую сторону. Если ввести 4,4 - не округляет. Пожскажите, что за функция (свойство) за это отвечает? :(
Private Sub SpinButton1_Change()
SpinButton1.Min = 1
TextBox2.Value = SpinButton1.Value
Private Sub TextBox2_Change()
If TextBox2.Value < 0 Then
MsgBox "Размер годовой ставки не может быть отрицательным. Пожалуйста, введите положительное значение"
TextBox2.Value = Empty
Exit Sub
End If
TextBox2.Value = Replace(TextBox2.Value, ".", ",")
If IsNumeric(TextBox2.Value) = False And TextBox2.Value <> Empty Then
MsgBox "В поле РАЗМЕР ГОДОВОЙ СТАВКИ допускается ввод только положительных значений"
TextBox2.Value = Empty
Exit Sub
End If
If TextBox2.Value <> Empty Then
SpinButton1.Value = TextBox2.Value
Exit Sub
End If
End Sub
Другие языки программирования и технологии
Программирование в VBA. Создание формы
Уважаемая Tris! Вы продолжаете шокировать общественность чудовищной аватаркой
и непонятной фразой "есть SpinButton и TextBox, связанные между собой"
С точки зрения программирования, эти два компонента никак не могут
быть связаны, они даже не подозревают о существовании друг-друга.
Они могут знать, что принадлежат своему родительскому контейнеру (в данном случае - форме).
Поэтому, давайте выражаться правильно! :)))
По поводу округления...
Мне кажется, что вы в своем образовании упустили самую важную вещь, а именно
как представляются различные типы данных в компьютере.
Для человека введенные в TextBox "Вася" и "3,14" - разные вещи, а вот для компьютера
это две одинаковые строки. Именно СТРОКИ, так как они введены в TextBox.
TextBox - от слова ТЕКСТ, а не от слова ЧИСЛО. Улавливаете разницу?
А у вас что?
SpinButton1.Value = TextBox2.Value
Т. е. Вы пытаетесь строку присвоить числу!!!
Не, Вы можете сказать, что оно работает... Работает, но видите с каким непонятным результатом.
Это называется неявное преобразование типов. Собственно, то, за что ругают VBA - за слишком большие вольности которые может позволить себе программист при обращении с данными.
При неявном преобразовании и позднем связывании VBA пытается сам "додумать" и исправить то, что Вы должны указать ему явно!
Еще...
TextBox2.Value = Empty
Правильнее будет так
TextBox2.Text = "" ' присвоили TextBox пустую строку (строку без единого символа)
Почему так, а не как у вас, объяснять не буду. Не хочу писать еще одно пособие по VBA...
и непонятной фразой "есть SpinButton и TextBox, связанные между собой"
С точки зрения программирования, эти два компонента никак не могут
быть связаны, они даже не подозревают о существовании друг-друга.
Они могут знать, что принадлежат своему родительскому контейнеру (в данном случае - форме).
Поэтому, давайте выражаться правильно! :)))
По поводу округления...
Мне кажется, что вы в своем образовании упустили самую важную вещь, а именно
как представляются различные типы данных в компьютере.
Для человека введенные в TextBox "Вася" и "3,14" - разные вещи, а вот для компьютера
это две одинаковые строки. Именно СТРОКИ, так как они введены в TextBox.
TextBox - от слова ТЕКСТ, а не от слова ЧИСЛО. Улавливаете разницу?
А у вас что?
SpinButton1.Value = TextBox2.Value
Т. е. Вы пытаетесь строку присвоить числу!!!
Не, Вы можете сказать, что оно работает... Работает, но видите с каким непонятным результатом.
Это называется неявное преобразование типов. Собственно, то, за что ругают VBA - за слишком большие вольности которые может позволить себе программист при обращении с данными.
При неявном преобразовании и позднем связывании VBA пытается сам "додумать" и исправить то, что Вы должны указать ему явно!
Еще...
TextBox2.Value = Empty
Правильнее будет так
TextBox2.Text = "" ' присвоили TextBox пустую строку (строку без единого символа)
Почему так, а не как у вас, объяснять не буду. Не хочу писать еще одно пособие по VBA...
тип переменной отвечает
Похожие вопросы
- Какой язык программирования подойдёт для создания искусственного интеллекта?
- Скажите изучать программирование на VBA - потеря времени? может просто VB или С++??
- Решение задач по программированию в VBA...помогите....Пожалуйста
- Программирование на VBA
- Информатика, VBA, создание алгоритмов
- Создание формы на сайте.
- Delphi. Динамическое создание формы
- Какой язык программирования посоветуете? Для создания мелких приложений и сайтов (если таковое возможно)
- Какой язык программирования подойдет для создания exe программы по функциям похожей на word, только чуть сложней?
- Какие языки программирования нужны для создания хорошего сайта?
Переменные, типы данных, область видимости, время жизни переменных.
Функции преобразования типов.
Массивы одномерные и многомерные, статические, динамические.
Циклы, ветвления, процедуры, функции.
Поверьте, как только вы хорошо усвоите данный материал, большинство вопросов отпадут
(появятся другие вопросы, но потом...)
Никто не начинает изучать математику с интегралов, начинают изучать с таблицы умножения...
;)