Suma i cuirsive

Innhold

Nedenfor finner du en ferdig brukerdefinert funksjon i VBA som oversetter et hvilket som helst tall fra 0 til 9 inn i sin tekstlige representasjon, dvs. i mengden i ord. Før bruk må denne funksjonen legges til boken din. For dette:

  1. trykk på hurtigtasten ALT + F11for å åpne Visual Basic Editor
  2. legg til ny tom modul via menyen Sett inn – modul
  3. kopier og lim inn teksten til denne funksjonen der:
Funksjon SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 Som Variant Nums1 = Matrise("", "one", "to", "tre", "fire", "fem", "seks", "sju", "åtte", "ni") Nums2 = Array("", "ti", "tjue", "tretti", "førti", "femti", "seksti", "sytti", _ "åtti ", "nitti") Nums3 = Array("", "ett hundre", "to hundre", "tre hundre", "fire hundre", "fem hundre", "seks hundre", "sju hundre", _ " åtte hundre", "ni hundre") Nums4 = Array("", "en", "to", "tre", "fire", "fem", "seks", "sju", "åtte", "ni ") Nums5 = Array("ti " , "elleve", "tolv", "tretten", "fjorten", _ "femten", "seksten", "sytten", "atten", "nitten") Hvis n < = 0 Så SUMWRITE = "null" Avslutt funksjon Slutt If 'del tallet i sifre ved hjelp av hjelpefunksjonen Klasse ed = Klasse(n, 1) dec = Klasse(n, 2) sot = Klasse(n, 3) tys = Klasse (n, 4) dectys = Klasse(n , 5) sottys = Klasse(n, 6) mil = Klasse(n, 7) decmil= Klasse(n, 8) 'sjekk millioner Velg Sak decmil Sak 1 mil_txt = Nums5(mil ) & "millioner " Gå til www Case 2 Til 9 decmil_txt = Nums2(decmil) Avslutt Velg Case mil Case 1 mil_txt = Nums1(mil) & "million" Case 2, 3, 4 mil_txt = Nums1(mil) & "million" Case 5 To 20 mil_txt = Nums1(mil) & "millions " End Velg www: sottys_txt = Nums3(sottys) ' sjekk tusenvis Velg Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " Gå til eee Case 2 Til 9 dectys_txt Nums2(dectys) Slutt Velg Velg Case tys Case 0 Hvis dectys > 0 Da tys_txt = Nums4(tys) & "thousands " Case 1 tys_txt = Nums4(tys) & "thousand " Case 2, 3, 4 tys_txt = Nums4(tys & "thousands " Case 5 To 9 tys_txt = Nums4(tys) & "thousands " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & "thousands" eee: sot_txt = Nums3(sot) ' sjekk tier Velg Sak dec Sak 1 ed_txt = Nums5(ed) Gå til rrr Sak 2 Til 9 dec_txt = Nums2(des) Slutt Velg ed_txt = Nums1 (ed) rrr: 'form den siste raden med SUM I TALE = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' hjelpefunksjon for å trekke ut fra antall sifre Private Function Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) Sluttfunksjon    

Lagre filen (hvis du har Excel 2007 eller 2010, så må filtypen være makroaktivert, dvs. xlsm-format!) og gå tilbake til Excel. Nå kan du sette inn den opprettede funksjonen i en hvilken som helst celle i regnearket på vanlig måte – gjennom funksjonsveiviseren (knapp fx i formellinje, kategori Brukerdefinert) eller ganske enkelt ved å skrive den inn i cellen manuelt og spesifisere cellen med beløpet som argument:

Hvis du trenger å legge til pennies til den mottatte teksten, kan du bruke en litt mer kompleks konstruksjon:

 u3d SUM I SKRIV (A3) & ” gni. “&TEXT((A3-INTEGER(A100))*00;”XNUMX″)&”cop.” 

u3d SUM I SKRIV (A3) & ” gni. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”cop.”

Så, for eksempel, for tallet 35,15, vil resultatet av funksjonen se ut som "trettifem rubler. 15 kop."

 

  • En kraftigere versjon av funksjonen med rubler og kopek på / engelsk fra PLEX-tillegget
  • Hva er makroer, hvor du skal sette inn makrokode, hvordan du bruker dem

 

Legg igjen en kommentar