Išrašant sąskaitas, turi būti rašoma galutinė suma skaičiais ir žodžiais. Visų plačiai naudojamas „Microsoft Excel“ neturi funkcijos, kuri valiutos tipo duomenį verstų lietuvių kalba pilnu tekstiniu pavidalu. Tad reikia rašyti patiems – arba programuoti 🙂 Kaip bebūtų keista (programavimas „Windows“ sistemoje tikrai nėra mano stiprioji pusė), užduotį įveikiau! Čia galite atsisiųsti (nekomerciniam naudojimui, komercinė licencija – 1 litas :)) pavyzdį, kad funkcija veikia.
Function num_txt(a)
s1 = “”
s2 = “”
s3 = “”
s4 = “”
s5 = “”
s6 = “”liekana = Int((a – Int(a)) * 100)
liekana_txt = CStr(liekana)a2 = a – liekana / 100
b1 = a2 Mod 10
b2 = a2 \ 10 Mod 10
b3 = a2 \ 100 Mod 10
b4 = a2 \ 1000 Mod 10
b5 = a2 \ 10000 Mod 10
b6 = a2 \ 100000 Mod 10If b2 <> 1 Then
If (b1 = 9) Then
s1 = “devyni”
ElseIf b1 = 8 Then s1 = “aštuoni”
ElseIf b1 = 7 Then s1 = “septyni”
ElseIf b1 = 6 Then s1 = “šeši”
ElseIf b1 = 5 Then s1 = “penki”
ElseIf b1 = 4 Then s1 = “keturi”
ElseIf b1 = 3 Then s1 = “trys”
ElseIf b1 = 2 Then s1 = “du”
ElseIf b1 = 1 Then s1 = “vienas”
Else
End If
End IfIf b2 = 9 Then
s2 = “devyniasdešimt”
ElseIf b2 = 8 Then s2 = “aštuoniasdešimt”
ElseIf b2 = 7 Then s2 = “septyniasdešimt”
ElseIf b2 = 6 Then s2 = “šešiasdešimt”
ElseIf b2 = 5 Then s2 = “penkiasdešimt”
ElseIf b2 = 4 Then s2 = “keturiasdešimt”
ElseIf b2 = 3 Then s2 = “trisdešimt”
ElseIf b2 = 2 Then s2 = “dvidešimt”
ElseIf b2 = 1 Then
If b1 = 9 Then
s2 = “devyniolika”
ElseIf b1 = 8 Then s2 = “aštuoniolika”
ElseIf b1 = 7 Then s2 = “septyniolika”
ElseIf b1 = 6 Then s2 = “šešiolika”
ElseIf b1 = 5 Then s2 = “penkiolika”
ElseIf b1 = 4 Then s2 = “keturiolika”
ElseIf b1 = 3 Then s2 = “trylika”
ElseIf b1 = 2 Then s2 = “dvylika”
ElseIf b1 = 1 Then s2 = “vienuolika”
ElseIf b1 = 0 Then s2 = “dešimt”
End If
End IfIf b3 = 9 Then
s3 = “devyni šimtai”
ElseIf b3 = 8 Then s3 = “aštuoni šimtai”
ElseIf b3 = 7 Then s3 = “septyni šimtai”
ElseIf b3 = 6 Then s3 = “šeši šimtai”
ElseIf b3 = 5 Then s3 = “penki šimtai”
ElseIf b3 = 4 Then s3 = “keturi šimtai”
ElseIf b3 = 3 Then s3 = “trys šimtai”
ElseIf b3 = 2 Then s3 = “du šimtai”
ElseIf b3 = 1 Then s3 = “šimtas”
End IfIf s3 <> “” Then s3 = s3 + ” ”
If s2 <> “” Then s2 = s2 + ” ”
If s1 <> “” Then s1 = s1 + ” ”If a >= 1 Then skaičius = s3 + s2 + s1 + “Lt”
If b5 <> 1 Then
If b4 = 9 Then
s1 = “devyni tūkstančiai”
ElseIf b4 = 8 Then s4 = “aštuoni tūkstančiai”
ElseIf b4 = 7 Then s4 = “septyni tūkstančiai”
ElseIf b4 = 6 Then s4 = “šeši tūkstančiai”
ElseIf b4 = 5 Then s4 = “penki tūkstančiai”
ElseIf b4 = 4 Then s4 = “keturi tūkstančiai”
ElseIf b4 = 3 Then s4 = “trys tūkstančiai”
ElseIf b4 = 2 Then s4 = “du tūkstančiai”
ElseIf b4 = 1 Then s4 = “vienas tūkstantis”
End If
End IfIf b4 = 0 Then
If (b5 > 0) Or (b6 > 0) Then s4 = “tūkstančių”
End IfIf b5 = 9 Then
s5 = “devyniasdešimt”
ElseIf b5 = 8 Then s5 = “aštuoniasdešimt”
ElseIf b5 = 7 Then s5 = “septyniasdešimt”
ElseIf b5 = 6 Then s5 = “šešiasdešimt”
ElseIf b5 = 5 Then s5 = “penkiasdešimt”
ElseIf b5 = 4 Then s5 = “keturiasdešimt”
ElseIf b5 = 3 Then s5 = “trisdešimt”
ElseIf b5 = 2 Then s5 = “dvidešimt”
ElseIf b5 = 1 Then
If b4 = 9 Then
s5 = “devyniolika tūkstančių”
ElseIf b4 = 8 Then s5 = “aštuoniolika tūkstančių”
ElseIf b4 = 7 Then s5 = “septyniolika tūkstančių”
ElseIf b4 = 6 Then s5 = “šešiolika tūkstančių”
ElseIf b4 = 5 Then s5 = “penkiolika tūkstančių”
ElseIf b4 = 4 Then s5 = “keturiolika tūkstančių”
ElseIf b4 = 3 Then s5 = “trylika tūkstančių”
ElseIf b4 = 2 Then s5 = “dvylika tūkstančių”
ElseIf b4 = 1 Then s5 = “vienuolika tūkstančių”
ElseIf b4 = 0 Then s5 = “dešimt tūkstančių”
End If
End IfIf b6 = 9 Then
s6 = “devyni šimtai”
ElseIf b6 = 8 Then s6 = “aštuoni šimtai”
ElseIf b6 = 7 Then s6 = “septyni šimtai”
ElseIf b6 = 6 Then s6 = “šeši šimtai”
ElseIf b6 = 5 Then s6 = “penki šimtai”
ElseIf b6 = 4 Then s6 = “keturi šimtai”
ElseIf b6 = 3 Then s6 = “trys šimtai”
ElseIf b6 = 2 Then s6 = “du šimtai”
ElseIf b6 = 1 Then s6 = “šimtas”
End IfIf s6 <> “” Then s6 = s6 + ” ”
If s5 <> “” Then s5 = s5 + ” ”
If s4 <> “” Then s4 = s4 + ” ”skaičius = s6 + s5 + s4 + skaičius
If liekana <> 0 Then If skaičius <> “” Then skaičius = skaičius + ” ” + liekana_txt + ” cnt” Else skaičius = liekana_txt + ” cnt”
If a >= 1 Then skaičius = Chr(Asc(Mid(skaičius, 1, 1)) – 32) + Mid(skaičius, 2, Len(skaičius) – 1)
num_txt = skaičius
End Function
Neatsitiktinai, matyt, tris kartus buvau patekęs į respublikinių moksleivių olimpiadų finalinį etapą. Vat ir dabar dar įgūdžių likę, sugebu vieną kitą funkciją prisiminti ir programuoti 🙂
Na, sita dalyka, kai prireike zmonai, radau internete. Nemegstu is naujo isradineti dviracio. Juo labiau girtis… Is informatikos ir programavimo, vidurineje, vos gavau 4-ta… Specialiai to niekada nesimokiau, bet stai VBA jau praktiskai perkandau… Zinoma, isskirtinai savo reikmem, nes kasdienybeje jo (programavimo) man ne kiek nereikia, bet palenginimu darbui su exel reikia kasdien…
Kažkur internete voliojasi makrokomanda kaip tą patį atlikti. Berods, kažkur ir pats turiu.
O gal kas galėtų parašyti OOo’ui, ne tik Exeliui?
ne i tema ,bet Liutaurai mesk ta babaju bruda kaip kaljanas…gal jau maratonuose nebestartuosi? 🙂