Версия для печати темы

Нажмите сюда для просмотра этой темы в оригинальном формате

WinCity.Ru _ Microsoft/Office Excel _ Translait

Автор: sss23 Понедельник, 29 Июля 2002, 15:45

народ подскажите как в EXCELL сделать так, что-бы число представленное в цифрах можно было записать словами
пример: есть число 15.23
надо пятнадцать рублей двадцать три копейки

ICQ:#99747992
лучше ответы направлять по аське и оставлять на этой странице

Автор: mokc0der Понедельник, 29 Июля 2002, 16:48

Господа а не пробывали воспользоваться яндексом ???
http://www.vlz.ru/books/pcmag/a4.htm

Автор: den_ser Вторник, 27 Августа 2002, 9:52

Есть такая прога - интегрируется прямо в ОФФИСЕ.
Если найду у себя, могу скинуть по мылу. rolleyes.gif

Автор: vf Суббота, 18 Января 2003, 19:54

сбрось это в модуль, а дальше используй Вставка втавить функцию Translat
Public Constr As String
Function Translat(ch) As String
Static chislo As Long
chislo = Val(ch)
Constr = ""
leng = Len(Str(chislo)) - 1
If leng > 9 Then
hi = chislo 1000000000
conv hi, 1
chislo = chislo - (hi * 1000000000)
leng = 9
End If
If leng > 6 Then
hi = chislo 1000000
conv hi, 2
chislo = chislo - (hi * 1000000)
leng = 6
End If
If leng > 3 Then
hi = chislo 1000
conv hi, 3
chislo = chislo - (hi * 1000)
leng = 3
End If
If leng <= 3 Then
conv chislo, 4
End If

stfirst = Left(Constr, 1)
stlast = Right(Constr, (Len(Constr) - 1))
Upstfirst = UCase(stfirst)
Translat = Upstfirst + stlast + " руб."

End Function

Sub conv(number1, order)
Dim st(4, 3) As String

st(1, 1) = "миллиард"
st(1, 2) = "миллиарда"
st(1, 3) = "миллиардов"

st(2, 1) = "миллион"
st(2, 2) = "миллиона"
st(2, 3) = "миллионов"

st(3, 1) = "тысяча"
st(3, 2) = "тысячи"
st(3, 3) = "тысяч"

st(4, 1) = ""
st(4, 2) = ""
st(4, 3) = ""

s = ""
Select Case (Len(Str(number1)) - 1)
Case 1
low = number1
hi = 0
med = 0
Case 2
low = number1 Mod 10
med = number1 10
hi = -1
Case 3
low = number1 Mod 10
hi = number1 100
med = (number1 10) - hi * 10
End Select

Select Case hi
Case 0
hi = 0
Case 1
s = "сто "
Case 2
s = "двести "
Case 3
s = "триста "
Case 4
s = "четыреста "
Case 5
s = "пятьсот "
Case 6
s = "шестьсот "
Case 7
s = "семьсот "
Case 8
s = "восемьсот "
Case 9
s = "девятьсот "
End Select

Select Case med
Case 0
med = 0
Case 1
Select Case low
Case 0
s = s + "десять " + st(order, 3) + " "
Case 1
s = s + "одинадцать " + st(order, 3) + " "
Case 2
s = s + "двенадцать " + st(order, 3) + " "
Case 3
s = s + "тринадцать " + st(order, 3) + " "
Case 4
s = s + "четырнадцать " + st(order, 3) + " "
Case 5
s = s + "пятнадцать " + st(order, 3) + " "
Case 6
s = s + "шестнадцать " + st(order, 3) + " "
Case 7
s = s + "семнадцать " + st(order, 3) + " "
Case 8
s = s + "восемнадцать " + st(order, 3) + " "
Case 9
s = s + "девятнадцать " + st(order, 3) + " "
End Select
med = -1
hi = 1
Case 2
s = s + "двадцать "
Case 3
s = s + "тридцать "
Case 4
s = s + "сорок "
Case 5
s = s + "пятьдесят "
Case 6
s = s + "шестьдесят "
Case 7
s = s + "семьдесят "
Case 8
s = s + "восемьдесят "
Case 9
s = s + "девяносто "
End Select

If (med <> -1) Or (hi = -1) Or ((hi = 0) And (med = 0)) Or ((low = 0) And (med = 0)) Or ((hi <> 0) And (med = 0) And (low <> 0)) Then
Select Case low
Case 0
If (med = 0) And ((hi <> 0) Or (low <> 0)) Or (low = 0) And ((hi <> 0) Or (med <> 0)) Then s = s + st(order, 3) + " "
If ((low = 0) And (hi = -1)) Then s = s + st(order, 3) + " "
Case 1
If order <> 3 Then
s = s + "один " + st(order, 1) + " "
Else
s = s + "одна " + st(order, 1) + " "
End If
Case 2
If order <> 3 Then
s = s + "два " + st(order, 2) + " "
Else
s = s + "две " + st(order, 2) + " "
End If
Case 3
s = s + "три " + st(order, 2) + " "
Case 4
s = s + "четыре " + st(order, 2) + " "
Case 5
s = s + "пять " + st(order, 3) + " "
Case 6
s = s + "шесть " + st(order, 3) + " "
Case 7
s = s + "семь " + st(order, 3) + " "
Case 8
s = s + "восемь " + st(order, 3) + " "
Case 9
s = s + "девять " + st(order, 3) + " "
End Select
End If
Constr = Constr + s
End Sub

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)