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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 16.06.2017, 13:12   #1
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию Перевод чисел в деньги

Здравствуйте!
Наткнулся на один макрос неработающий, который должен переводить числа в деньги. С ними работаю мало, не подскажите где ошибки?
Код:
Sub name(raz)

Function RubKop(Число)
   ' Пустые ячейки и ячейки, содержащие текст, функция _
    не обрабатывает
   If IsNumeric(Число) = False Or Число = "" Then RubKop = _
    "<>": Exit Function
 
   ' Из числа целой части - рубли
   ДлинаЧисла = Len(Число)
   ЦелаяЧасть = Fix(Число)
   ДлинаЦелой = Len(ЦелаяЧасть)
 
   ' Вычисление длины дробной части
   ДлинаДроби = ДлинаЧисла - ДлинаЦелой
   If ДлинаДроби <> 0 Then
      ДлинаДроби = ДлинаЧисла - ДлинаЦелой - 1
   End If
 
   ' Формирование количества копеек в зависимости от длины _
    дробной части
   If ДлинаДроби = 0 Then
      ' Ноль копеек
      Копейки = "00"
   ElseIf ДлинаДроби = 1 Then
      ' Дробная часть состоит из одного числа - это _
       десятки копеек
      Копейки = Right(Число, ДлинаДроби) & "0"
   ElseIf ДлинаДроби = 2 Then
      ' Дробная часть полностью соответствует количеству копеек
      Копейки = Right(Число, ДлинаДроби)
   Else
      ' Длина дробной части больше двух - округлим _
       дробную часть
      Копейки = Right(Число, ДлинаДроби)
      If Mid(Копейки, 3, 1) > 4 Then
         Копейки = Left(Копейки, 2) + 1
      Else
         Копейки = Left(Копейки, 2)
      End If
   End If
   ' Составление полной надписи из количества рублей и копеек
   Рубли = ЦелаяЧасть
   RubKop = Рубли & " " & "руб." & " " & Копейки & " " & "коп."
End Function
_____
Код программы нужно выделять (форматировать) тегами [CODE] (читать FAQ)
Модератор

Последний раз редактировалось Serge_Bliznykov; 16.06.2017 в 13:14.
mexx1337 вне форума Ответить с цитированием
Старый 16.06.2017, 13:17   #2
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Рабочая функция. Где не работает?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.06.2017, 13:19   #3
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

для чего написали Sub name(raz) ?
куда вставили данный макрос?


нужно открыть редактор, слева в дерево проектов в книгу нужно вставить модуль (пр.кн.мышки - Insert Module)
и вставить код туда.

функция работает, я проверил.

функция написана без объявления переменных, поэтому строчку Option Explicit нужно удалить (если она там есть, конечно).
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2017, 13:48   #4
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию

файл просил сохранения и после этого автоматом добавился Sub
в целом потом он все равно не запускается

что я еще не так делаю?

Последний раз редактировалось mexx1337; 16.06.2017 в 13:51.
mexx1337 вне форума Ответить с цитированием
Старый 16.06.2017, 13:50   #5
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию

файл просил сохранения и после этого автоматом добавился Sub
в целом потом он все равно не запускается

что я еще не так делаю?

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
для чего написали Sub name(raz) ?
куда вставили данный макрос?


нужно открыть редактор, слева в дерево проектов в книгу нужно вставить модуль (пр.кн.мышки - Insert Module)
и вставить код туда.

функция работает, я проверил.

функция написана без объявления переменных, поэтому строчку Option Explicit нужно удалить (если она там есть, конечно).
Изображения
Тип файла: png Безымянный.png (57.8 Кб, 113 просмотров)
mexx1337 вне форума Ответить с цитированием
Старый 16.06.2017, 13:52   #6
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

Цитата:
Сообщение от mexx1337 Посмотреть сообщение
что я еще не так делаю?
так это не макрос, это ФУНКЦИЯ.
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2017, 13:55   #7
Aleksandr H.
2 the Nation Glory
Старожил
 
Аватар для Aleksandr H.
 
Регистрация: 27.05.2014
Сообщений: 3,289
По умолчанию

Цитата:
Сообщение от Serge_Bliznykov Посмотреть сообщение
Цитата:
Цитата:
Сообщение от mexx1337 Посмотреть сообщение
что я еще не так делаю?
так это не макрос, это ФУНКЦИЯ.
mexx1337 А как, по Вашему, "он" должен переводить?
Кто умер, но не забыт, тот бессмертен.
Лао-Цзы.
Aleksandr H. вне форума Ответить с цитированием
Старый 16.06.2017, 13:57   #8
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию

Цитата:
Сообщение от Aleksandr H. Посмотреть сообщение
mexx1337 А как, по Вашему, "он" должен переводить?
его можно как-то в макрос заключить? я просто с этим не работал.
я думал что есть число 100,54 будет 100 рублей 54 копейки
mexx1337 вне форума Ответить с цитированием
Старый 16.06.2017, 13:58   #9
Serge_Bliznykov
Старожил
 
Регистрация: 09.01.2008
Сообщений: 26,229
По умолчанию

вот так вызывается:
exxx.png

и вот файл-пример
КнигаRubKop.zip
Serge_Bliznykov вне форума Ответить с цитированием
Старый 16.06.2017, 14:18   #10
mexx1337
Пользователь
 
Регистрация: 16.12.2010
Сообщений: 22
По умолчанию

спасибо большое!

последний вопрос (надеюсь) - а как можно это дело сделать с помощью макроса чтобы шло преобразование всех чисел из выбранного диапазона на листе и, например, выделяло красным цветом отрицательные числа.

как это можно добавить сюда?
mexx1337 вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Перевод чисел Creimi69 Общие вопросы C/C++ 0 11.05.2014 22:26
Перевод чисел glushara Помощь студентам 2 22.04.2012 18:57
перевод чисел Настя Шелестова Помощь студентам 11 05.10.2011 08:11
Перевод денег с Яндекс.Деньги на Web Money Яр|/||< (^_^) Свободное общение 5 05.06.2010 18:53
перевод чисел counter Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 4 05.06.2009 22:41