|
|
Elektronika.lt portalo forumas
Jūs esate neprisijungęs lankytojas. Norint dalyvauti diskusijose, būtina užsiregistruoti ir prisijungti prie forumo.
Prisijungę galėsite kurti naujas temas, atsakyti į kitų užduotus klausimus, balsuoti forumo apklausose.
Administracija pasilieka teisę pašalinti pasisakymus bei dalyvius,
kurie nesilaiko forumo taisyklių.
Pastebėjus nusižengimus, prašome pranešti.
Dabar yra 2025 02 03, 18:05. Visos datos yra GMT + 2 valandos.
|
|
|
|
Forumas » Programavimas » MS Excel VB kodas, keičiantis skaičius į tekstą.
|
Jūs negalite rašyti naujų pranešimų į šį forumą Jūs negalite atsakinėti į pranešimus šiame forume Jūs negalite redaguoti savo pranešimų šiame forume Jūs negalite ištrinti savo pranešimų šiame forume Jūs negalite dalyvauti apklausose šiame forume
|
|
|
|
|
|
MS Excel VB kodas, keičiantis skaičius į tekstą. |
Parašytas: 2009 10 23, 10:59 |
|
|
|
Nusikopijavau, persidariau kodą kuris skaičius konvertuoja į tekstą. Viskas gerai veikia, tik vienas trūkumas. "tūkstančiai" kaip padaryti, kad jeigu bus 1000 rašytu man "vienas tūkstantis", o ne "vienas tūkstančiai"?
Galvoju reiktu daryti taip. Kai naudoja place(2), (jei gerai suprantu, tai antras ratas count = 2) tada, jei gerai galvoju, jei count = 2, ir getdigit = 1, place(2) = "tūkstantis".
nežianu ar gerai galvoju ir tuo labiau nežinau kaip tai užrašyti
Ir nesugalvoju kaip padaryti, kad ignoruotu "-" ženklą, jei tarkim skaičius neigiamas. Dabar pas mane jei parašau pvz.: "-11", tai rašo "šimtai vienuolika".
Dėkui.
Option Explicit
'Main Function
Function SpellNumber(ByVal MyNumber)
Dim vnt, Cents, Temp
Dim DecimalPlace, Count
ReDim Place(9) As String
Place(2) = " tūkstančiai "
Place(3) = " milijonai "
Place(4) = " Billion "
Place(5) = " Trillion "
' String representation of amount.
MyNumber = Trim(Str(MyNumber))
' Position of decimal place 0 if none.
DecimalPlace = InStr(MyNumber, ".")
' Convert cents and set MyNumber to dollar amount.
If DecimalPlace > 0 Then
Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _
"00", 2))
MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
End If
Count = 1
Do While MyNumber <> ""
Temp = GetHundreds(Right(MyNumber, 3))
If Temp <> "" Then vnt = Temp & Place(Count) & vnt
If Len(MyNumber) > 3 Then
MyNumber = Left(MyNumber, Len(MyNumber) - 3)
Else
MyNumber = ""
End If
Count = Count + 1
Loop
Select Case vnt
Case ""
vnt = "Nulis vnt."
Case "vienas"
vnt = "vienas vnt."
Case Else
vnt = vnt & " vnt."
End Select
SpellNumber = vnt
End Function
' Converts a number from 100-999 into text
Function GetHundreds(ByVal MyNumber)
Dim Result As String
If Val(MyNumber) = 0 Then Exit Function
MyNumber = Right("000" & MyNumber, 3)
' Convert the hundreds place.
If Mid(MyNumber, 1, 1) <> "0" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " šimtai "
End If
If Mid(MyNumber, 1, 1) = "1" Then
Result = GetDigit(Mid(MyNumber, 1, 1)) & " šimtas "
End If
' Convert the tens and ones place.
If Mid(MyNumber, 2, 1) <> "0" Then
Result = Result & GetTens(Mid(MyNumber, 2))
Else
Result = Result & GetDigit(Mid(MyNumber, 3))
End If
GetHundreds = Result
End Function
' Converts a number from 10 to 99 into text.
Function GetTens(TensText)
Dim Result As String
Result = "" ' Null out the temporary function value.
If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
Select Case Val(TensText)
Case 10: Result = "dešimt"
Case 11: Result = "vienuolika"
Case 12: Result = "dvylika"
Case 13: Result = "trylika"
Case 14: Result = "keturiolika"
Case 15: Result = "penkiolika"
Case 16: Result = "šešiolika"
Case 17: Result = "septyniolika"
Case 18: Result = "aštuoniolika"
Case 19: Result = "devyniolika"
Case Else
End Select
Else ' If value between 20-99...
Select Case Val(Left(TensText, 1))
Case 2: Result = "dvidešimt "
Case 3: Result = "trisdešimt "
Case 4: Result = "keturiasdešimt "
Case 5: Result = "penkiasdešimt "
Case 6: Result = "šešiasdešimt "
Case 7: Result = "septyniasdešimt "
Case 8: Result = "aštuoniasdešimt "
Case 9: Result = "devyniasdešimt "
Case Else
End Select
Result = Result & GetDigit _
(Right(TensText, 1)) ' Retrieve ones place.
End If
GetTens = Result
End Function
' Converts a number from 1 to 9 into text.
Function GetDigit(Digit)
Select Case Val(Digit)
Case 1: GetDigit = "vienas"
Case 2: GetDigit = "du"
Case 3: GetDigit = "trys"
Case 4: GetDigit = "keturi"
Case 5: GetDigit = "penki"
Case 6: GetDigit = "šeši"
Case 7: GetDigit = "septyni"
Case 8: GetDigit = "aštuoni"
Case 9: GetDigit = "devyni"
Case Else: GetDigit = ""
End Select
End Function |
|
|
|
|
|
|
|
Google paieška forume |
|
|
Naujos temos forume |
|
|
FS25 Tractors
Farming Simulator 25 Mods,
FS25 Maps,
FS25 Trucks |
|
ETS2 Mods
ETS2 Trucks,
ETS2 Bus,
Euro Truck Simulator 2 Mods
|
|
FS22 Tractors
Farming Simulator 22 Mods,
FS22 Maps,
FS25 Mods |
|
VAT calculator
VAT number check,
What is VAT,
How much is VAT |
|
LEGO
Mänguköök,
mudelautod,
nukuvanker |
|
Thermal monocular
Thermal vision camera,
Night vision ar scope,
Night vision spotting scope |
|
FS25 Mods
FS25 Harvesters,
FS25 Tractors Mods,
FS25 Maps Mods |
|
Dantų protezavimas
All on 4 implantai,
Endodontija mikroskopu,
Dantų implantacija |
|
FS25 Mods
FS25 Maps,
FS25 Cheats,
FS25 Install Mods |
|
GTA 6 Weapons
GTA 6 Characters,
GTA 6 Map,
GTA 6 Vehicles |
|
FS25 Mods
Farming Simulator 25 Mods,
FS25 Maps |
|
ATS Trailers
American Truck Simulator Mods,
ATS Trucks,
ATS Maps |
|
|
|