 |
on-line-teaching.com Онлайн курсы MS Office: Word, Excell. Как сделать сайт: HTML, JS, PHP
|
Предыдущая тема :: Следующая тема
|
Автор |
Сообщение |
Юрий александрович Prizivnik - draftee

Зарегистрирован: 04.06.2008 Сообщения: 1
|
Добавлено: Ср Июн 04, 2008 5:02 pm Заголовок сообщения: Подскажите функцию |
|
|
ПОМОГИТЕ!!!!
Необходимо преобразовать численное значение в текстовое1-один,2-два.Пожалуйста подскажите как это сделать, а то сам нашел функцию БАТ, но непонятно для кого преобразование на тайский язык |
|
Вернуться к началу |
|
 |
AsIs captain


Зарегистрирован: 27.01.2006 Сообщения: 250 Откуда: СПб
|
Добавлено: Чт Июн 05, 2008 1:22 pm Заголовок сообщения: |
|
|
Стандартной функции нет. Нужно воспользоваться поиском (что-то типа Число прописью) чтобы найти в интернете надстройку для Excel, которая выполняет преобразование числа в текст. Такая надстройка существует. И даже по-моему на этом форуме уже это обсуждалось. |
|
Вернуться к началу |
|
 |
abcde Rjadovoj - the ranks

Зарегистрирован: 12.07.2008 Сообщения: 12 Откуда: Беларусь
|
Добавлено: Сб Июл 12, 2008 6:18 pm Заголовок сообщения: |
|
|
Попробуйте эту функцию.
' Public domain by Банников Сергей, Омега Плюс
' E-mail: s.bannik@relcom.ru
' Представление числа прописью на русском языке.
' Поддержка целых чисел типа Long во всем диапазоне
'
Private Skl As Byte
Public Function NumStr(N As Long) As String
Dim s As String
s = ""
If N < 0 Then
N = Abs(N)
s = "минус"
End If
If N > 1000000000 Then
s = AddStr(s, NumStr2(N \ 1000000000, True))
Select Case Skl
Case 0
s = AddStr(s, "миллиард")
Case 1
s = AddStr(s, "миллиарда")
Case 2
s = AddStr(s, "миллиардов")
End Select
N = N Mod 1000000000
End If
If N > 1000000 Then
s = AddStr(s, NumStr2(N \ 1000000, True))
Select Case Skl
Case 0
s = AddStr(s, "миллион")
Case 1
s = AddStr(s, "миллиона")
Case 2
s = AddStr(s, "миллионов")
End Select
N = N Mod 1000000
End If
If N > 1000 Then
s = AddStr(s, NumStr2(N \ 1000, False))
Select Case Skl
Case 0
s = AddStr(s, "тысяча")
Case 1
s = AddStr(s, "тысячи")
Case 2
s = AddStr(s, "тысяч")
End Select
N = N Mod 1000
End If
If N > 0 Then
s = AddStr(s, NumStr2(N, True))
End If
If s = "" Then
s = "ноль"
End If
NumStr = StrConv(Mid(s, 1, 1), vbUpperCase) + Mid(s, 2, Len(s) - 1)
End Function
Private Function NumStr2(N As Long, male As Boolean) As String
Dim s As String
s = ""
If N >= 100 Then
s = NumStr1((Int(N / 100) * 100), male)
N = N Mod 100
End If
If N >= 20 Then
s = AddStr(s, NumStr1((Int(N / 10) * 10), male))
N = N Mod 10
End If
NumStr2 = AddStr(s, NumStr1(N, male))
End Function
Private Function NumStr1(N As Long, male As Boolean) As String
Skl = 2
Select Case N
Case 100
NumStr1 = "сто"
Case 200
NumStr1 = "двести"
Case 300
NumStr1 = "триста"
Case 400
NumStr1 = "четыреста"
Case 500
NumStr1 = "пятьсот"
Case 600
NumStr1 = "шестьсот"
Case 700
NumStr1 = "семьсот"
Case 800
NumStr1 = "восемьсот"
Case 900
NumStr1 = "девятьсот"
Case 11
NumStr1 = "одиннадцать"
Case 12
NumStr1 = "двенадцать"
Case 13
NumStr1 = "тринадцать"
Case 14
NumStr1 = "четырнадцать"
Case 15
NumStr1 = "пятнадцать"
Case 16
NumStr1 = "шестьнадцать"
Case 17
NumStr1 = "семнадцать"
Case 18
NumStr1 = "восемнадцать"
Case 19
NumStr1 = "девятнадцать"
Case 20
NumStr1 = "двадцать"
Case 30
NumStr1 = "тридцать"
Case 40
NumStr1 = "сорок"
Case 50
NumStr1 = "пятьдесят"
Case 60
NumStr1 = "шестьдесят"
Case 70
NumStr1 = "семьдесят"
Case 80
NumStr1 = "восемьдесят"
Case 90
NumStr1 = "девяносто"
Case 1
Skl = 0
If male Then
NumStr1 = "один"
Else
NumStr1 = "одна"
End If
Case 2
Skl = 1
If male Then
NumStr1 = "два"
Else
NumStr1 = "две"
End If
Case 3
Skl = 1
NumStr1 = "три"
Case 4
Skl = 1
NumStr1 = "четыре"
Case 5
NumStr1 = "пять"
Case 6
NumStr1 = "шесть"
Case 7
NumStr1 = "семь"
Case 8
NumStr1 = "восемь"
Case 9
NumStr1 = "девять"
Case 10
NumStr1 = "десять"
End Select
End Function
Private Function AddStr(S1 As String, S2 As String)
If S1 = "" Then
AddStr = S2
ElseIf S2 = "" Then
AddStr = S1
Else
AddStr = S1 + " " + S2
End If
End Function |
|
Вернуться к началу |
|
 |
AsIs captain


Зарегистрирован: 27.01.2006 Сообщения: 250 Откуда: СПб
|
|
Вернуться к началу |
|
 |
|
|
Вы не можете начинать темы Вы не можете отвечать на сообщения Вы не можете редактировать свои сообщения Вы не можете удалять свои сообщения Вы не можете голосовать в опросах
|
|