Bardzo często zdarza się, że musimy się wystawić liczby zapisane w języku ukraińskim w programie Excel . Na przykład wyświetl liczbę stron w dokumencie na piśmie - liczbę „27” jako
Ponadto dla celów księgowych koszt transakcji handlowej należy zapisać słownie. Na przykład sumę 10 568,23 należy wyświetlić pisemnie jako
Poniżej znajdziesz gotową funkcję na VBA, która tłumaczy dowolną liczbę na jej reprezentację tekstową w języku ukraińskim, czyli liczbę zapisaną. Tę funkcję należy dodać do książki przed użyciem.
Dla tego:
Function SUMINWORDS(n As Double, curr As Variant, kop As Variant) As String 'moonexcel.com.ua Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums0 = Array("", "одна ", "дві ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums1 = Array("", "один ", "два ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums2 = Array("", "десять ", "двадцять ", "тридцять ", "сорок ", "п'ятдесят ", "шістдесят ", "сімдесят ", _ "вісімдесят ", "дев'яносто ") Nums3 = Array("", "сто ", "двісті ", "триста ", "чотириста ", "п'ятсот ", "шістсот ", "сімсот ", _ "вісімсот ", "дев'ятсот ") Nums4 = Array("", "одна ", "дві ", "три ", "чотири ", "п'ять ", "шість ", "сім ", "вісім ", "дев'ять ") Nums5 = Array("десять ", "одинадцять ", "дванадцять ", "тринадцять ", "чотирнадцять ", _ "п'ятнадцять ", "шістнадцять ", "сімнадцять ", "вісімнадцять ", "дев'ятнадцять ") If n < 1 Then SUMINWORDS = "Нуль " & curr & " " & Round((n - Fix(n)) * 100) & " " & kop If curr = "" Then SUMINWORDS = "Нуль" End If Exit Function End If 'liczbę dzielimy na cyfry za pomocą funkcji pomocniczej Klasa ed = Class(n, 1) dec = Class(n, 2) sot = Class(n, 3) tys = Class(n, 4) dectys = Class(n, 5) sottys = Class(n, 6) mil = Class(n, 7) decmil = Class(n, 8) sotmil = Class(n, 9) bil = Class(n, 10) 'sprawdzanie miliardów Select Case bil Case 1 bil_txt = Nums1(bil) & "мільярд " Case 2 To 4 bil_txt = Nums1(bil) & "мільярди " Case 5 To 9 bil_txt = Nums1(bil) & "мільярдів " End Select 'sprawdzanie milionów Select Case sotmil Case 1 To 9 sotmil_txt = Nums3(sotmil) End Select Select Case decmil Case 1 mil_txt = Nums5(mil) & "мільйонів " GoTo www Case 2 To 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 0 If decmil > 0 Then mil_txt = Nums4(mil) & "мільйонів " Case 1 mil_txt = Nums1(mil) & "мільйон " Case 2, 3, 4 mil_txt = Nums1(mil) & "мільйона " Case 5 To 9 mil_txt = Nums1(mil) & "мільйонів " End Select If decmil = 0 And mil = 0 And sotmil <> 0 Then sotmil_txt = sotmil_txt & "мільйонів " www: sottys_txt = Nums3(sottys) 'sprawdzamy tysiące Select Case dectys Case 1 tys_txt = Nums5(tys) & "тисяч " GoTo eee Case 2 To 9 dectys_txt = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 Then tys_txt = Nums4(tys) & "тисяч " Case 1 tys_txt = Nums4(tys) & "тисячa " Case 2, 3, 4 tys_txt = Nums4(tys) & "тисячі " Case 5 To 9 tys_txt = Nums4(tys) & "тисяч " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & " тисяч " eee: sot_txt = Nums3(sot) 'sprawdzamy dziesiątki Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums0(ed) rrr: 'tworzą ostatnią linię SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _ & tys_txt & sot_txt & dec_txt & ed_txt & curr & " " & Round((n - Fix(n)) * 100) & " " & kop If curr = "" Then SUMINWORDS = bil_txt & sotmil_txt & decmil_txt & mil_txt & sottys_txt & dectys_txt _ & tys_txt & sot_txt & dec_txt & ed_txt End If SUMINWORDS = UCase(Mid(SUMINWORDS, 1, 1)) + Mid(SUMINWORDS, 2) End Function 'funkcja pomocnicza do wyboru z liczby cyfr Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) End Function
Zapisz plik i wróć do Excel.
Teraz możesz wstawić utworzoną funkcję do dowolnej komórki arkusza tej książki w zwykły sposób - poprzez kreator funkcji (przycisk na pasku formuły, kategoria Zdefiniowane przez użytkownika) lub po prostu wpisując ją ręcznie w komórce i określając komórkę z sumą jako argumentem. Ponadto w parametrach funkcji możesz podać nazwę waluty (hrywna, dolar, euro...) i nazwę setnych (grosze, centy...):
=SUMINWORDS(tekst; waluta; setki)
Jeśli w parametrze "waluta" wstaw puste cudzysłowy („”), wówczas suma zostanie wypisana jako liczba całkowita: