Форум программистов, компьютерный форум, киберфорум
Наши страницы
VBA
Войти
Регистрация
Восстановить пароль
 
PiLLyulk
0 / 0 / 0
Регистрация: 15.08.2018
Сообщений: 30
1

Как заставить функцию выдавать результат в верхнем регистре и округлять как мне надо?

22.08.2018, 12:21. Просмотров 80. Ответов 7
Метки нет (Все метки)

Здравствуйте!

Я нашел функцию, которая преобразует числовые значения в текст (пишет прописью: 2800,00 Две тысячи восемьсот рублей 00 коп.).
С ней есть 2 проблемы:
1. она выдает результат с маленькой буквы;
2. она творит бесчинства с копейками (например: 2802,24 Две тысячи восемьсот два рубля 23,9999999999782 коп.)

Мне кажется, что проблема в этой части кода:

Visual Basic
1
2
3
4
5
6
7
8
9
10:    Next x
a = SumBase
b = Int(a)
c = (a - b) * 100
If c = 0 Then c = CStr(c) + "0"
d = " коп. "
ЧислоПрописьюВалюта = txt + " " + CStr(c) + d
11:
End Function
Если нет, то могу весь вставить, или файл прикрепить.

Помогите, пожалуйста.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.08.2018, 12:21
Ответы с готовыми решениями:

Как исключить из поиска в макросах строку, которую мне надо?
Добрый вечер! Мне надо исключить из поиска рядок 125 и 126. как это можно...

Как заставить работать функцию My.Value = 'ТЕКСТ' EXPL = ' '
1. Создаю функцию: Function EX(My As Range) As String My.Value = 'ТЕКСТ' ...

Как средствами AS 3.0 заставить текст вводится в верхнем регистре?
Как средствами AS 3.0 заставить текст автоматически вводится в верхнем регистре?

Напишите функцию, которая возвращает строку strв нижнем регистре, но каждый третий знак в верхнем регистре
Задание 1 Напишите функцию, которая возвращает строку strв нижнем регистре, но...

Как в string вывести текст с цифры в верхнем регистре (как при возведении в степень)
Здравствуйте. Необходимо (в EditText выводить) получить строку со значением...

7
Остап Бонд
600 / 394 / 192
Регистрация: 17.08.2017
Сообщений: 976
22.08.2018, 12:42 2
Цитата Сообщение от PiLLyulk Посмотреть сообщение
c = (a - b) * 100
Visual Basic
1
c =INT( (a - b) * 100)
или объявите
Visual Basic
1
dim c&
до вычисления.
0
PiLLyulk
0 / 0 / 0
Регистрация: 15.08.2018
Сообщений: 30
22.08.2018, 12:46  [ТС] 3
Остап Бонд, так лучше, но 1 копейку зажал.
2802,24 Две тысячи восемьсот два рубля 23 коп.
Может есть какое-то округление до ближайшего числа?
0
Остап Бонд
600 / 394 / 192
Регистрация: 17.08.2017
Сообщений: 976
22.08.2018, 12:51 4
INT замените на CINT
1
PiLLyulk
0 / 0 / 0
Регистрация: 15.08.2018
Сообщений: 30
22.08.2018, 13:03  [ТС] 5
Остап Бонд, спасибо! А не знаете как результат с большой буквы получить?
0
Hugo121
6285 / 2387 / 402
Регистрация: 19.10.2012
Сообщений: 7,056
22.08.2018, 13:59 6
Цитата Сообщение от PiLLyulk Посмотреть сообщение
результат с большой буквы получить
можно функцией Экселя Пропнач()

Добавлено через 1 минуту
Упс, не заметил что там в заголовке Ворд. Или его и не было?...
0
PiLLyulk
0 / 0 / 0
Регистрация: 15.08.2018
Сообщений: 30
22.08.2018, 14:01  [ТС] 7
Цитата Сообщение от Hugo121 Посмотреть сообщение
можно функцией Экселя Пропнач()
Не, так не получится, я пробовал. Вот что выходит: 4 650,00 ₽ Четыре Тысячи Шестьсот Пятьдесят Рублей 00 Коп.
Все слова с большой буквы.
Я заглавную поднял с помощью другой функции пользовательской:
Visual Basic
1
2
3
4
5
6
Function ЗАГЛАВН(Text)
If Text = " " Then ЗАГЛАВН = "<>": Exit Function
FS = UCase(Left(Text, 1))
SS = LCase(Mid(Text, 2))
ЗАГЛАВН = FS & SS
End Function
Но это очень по дурацки, мне кажется.
0
Hugo121
6285 / 2387 / 402
Регистрация: 19.10.2012
Сообщений: 7,056
22.08.2018, 14:26 8
Можно ещё примерно так:
Visual Basic
1
2
3
4
5
6
7
Sub tt()
Dim s$
s = "sd_fs fhfh"
s = Replace(s, " ", "_____")
s = StrConv(s, vbProperCase)
s = Replace(s, "_____", " ")
End Sub
0
22.08.2018, 14:26
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.08.2018, 14:26

Как на форме сделать все слова в верхнем регистре?
Помогите, как на форме сделать все слова в верхнем регистре?

Как сделать каждый чётный символ в верхнем регистре?
Есть строка из символов. Выводится в блок div. Если бы символы этой строки были...

Как проверить пароль на наличие букв в верхнем и нижнем регистре ?
при этом в пароле могут быть не только буквы но и цифры


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru