![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 13
|
![]()
Здравствуйте, дорогие Коллеги,
нужен Ваш совет... Требуется добавлять 2 знака после запятой для всех целых чисел, вводимых в textbox (или же добавлять лишний ноль для дробных чисел, преобразуя их в ЛЮБОМ случае в "сотые"). Ограничил набор вводимых символов в textbox только числами и запятой (событие Change), но не знаю, как преобразовывать вводимые данные, если ленивый пользователь ввел только целое число ![]() С помощью функции Round реализовать желаемое не смог... Заранее спасибо за помощь, с уважением, Николай |
![]() |
![]() |
![]() |
#2 |
Балуюсь кодами
Участник клуба
Регистрация: 09.01.2009
Сообщений: 1,837
|
![]()
Функция Format. Если нужно до сотых, то подойдет параметр этой функции Currency
Лучше день потерять — потом за пять минут долететь!©
|
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 12.01.2009
Сообщений: 13
|
![]()
Спасибо за ответ. Одно "но" - я, к сожалению, не очень пока опытен в VB/VBA. Поэтому мои методы реализации вызывают ошибку "Type mismatch".
Код:
С уважением, Николай |
![]() |
![]() |
![]() |
#4 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Пока рубль не деноминирован, дробная часть вводимой цены чаще всего нулевая, и заставлять пользователя каждый раз вводить эти пустопорожние копейки (когда их нет), думаю, не гуманно. Ну а если надо — пусть вводит. К сожалению, с обработкой ввода в поля форм давно не сталкивался, и вот написал две «демонстрашки» с функцией Format. Они запускаются по альт-R и альт-шифт-R соответственно.
Подробности о функциях смотрите по F1 (в Excel, возможно, Ctrl-F1), установив курсор на имя функции в редакторе VBA. Код:
Полтора часа мучил Word, но продумать все капризы «вводящего» юзера не получилось.
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 20.04.2009 в 02:36. Причина: добавление кода формы для ввода. |
![]() |
![]() |
![]() |
#5 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
![]()
Данный код позволяет вводить в поле только цифры и одну запятую, причём после запятой допускается ввод не более 2 цифр.
При нажатии Enter введённое число преобразуется к нужному формату. Код:
|
![]() |
![]() |
![]() |
#6 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]() Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 20.04.2009 в 05:00. Причина: прибамбасы на форме. |
![]() |
![]() |
![]() |
#7 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]() Код:
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 26.04.2009 в 04:51. |
![]() |
![]() |
![]() |
#8 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Самое-то главное чуть не забыл: применение на практике! Прилагаю.
Это чисто ученический пример — моя первая* рабочая ВБА-форма! Код «раздулся» вдвое, но по меркам Windows он не так уж и велик. Код:
________________ * столь многокнопочная
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 26.04.2009 в 04:51. |
![]() |
![]() |
![]() |
#9 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
Кстати, очень удобно вышеприведённую форму использовать для копирования цен (когда их штук 10—20) с магазинного чека.
Затем достаточно введённое выделить — нажать альт-S — и сверить сумму. Поменял язык в..! Суть в том, что форматы с именем ("standard", "currency" etc.) преобразуют строку в зависимости от настройки числовых форматов в Панели управления Windows (раздел Язык и региональные стандарты).
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 23.04.2009 в 17:02. |
![]() |
![]() |
![]() |
#10 |
Особый статус
Участник клуба
Регистрация: 24.11.2008
Сообщений: 1,535
|
![]()
«Черновики» снёс, а вот более-менее устойчивый вариант (по альт-шифт-S).
Формула 1 (календарь чемпионата-2016): 26.11.2016 15:55 — Абу-Даби: http://ru.wikipedia.org/wiki/Гран-при_Абу-Даби — (квалификация)! Эфир: http://lion-tv.com/28-match-tv.html
Последний раз редактировалось Sasha_Smirnov; 26.04.2009 в 05:00. |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
ВЫчисление дробей по модулю целого числа | Камикадзе | Помощь студентам | 0 | 18.04.2009 09:29 |
Как переменной присвоить данные из текстового поля формы? | kitten2 | Microsoft Office Excel | 2 | 08.04.2009 05:43 |
Ввод данных в поля на страничке | Port 111 | Работа с сетью в Delphi | 7 | 12.01.2009 20:34 |
Перевод десятичных чисел в тип Double | Kuzya59 | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 4 | 04.12.2008 15:41 |
Вывод целых и десятичных чисел | Maycal | Общие вопросы C/C++ | 2 | 24.10.2007 12:34 |