Suma in cuirsivo

Contenuti

Di seguito troverai una funzione definita dall'utente già pronta in VBA che traduce qualsiasi numero da 0 a 9 nella sua rappresentazione testuale, cioè nella quantità in parole. Prima dell'uso, questa funzione deve essere aggiunta al tuo libro. Per questo:

  1. premere la scorciatoia da tastiera ALT + F11per aprire l'editor di Visual Basic
  2. aggiungi un nuovo modulo vuoto tramite il menu Inserisci – Modulo
  3. copia e incolla lì il testo di questa funzione:
Funzione SUM(n As Double) As String Dim Nums1, Nums2, Nums3, Nums4 As Variant Nums1 = Array("", "one", "two", "three", "four", "five", "six", "sette", "otto", "nove") Nums2 = Array("", "dieci", "venti", "trenta", "quaranta", "cinquanta", "sessanta", "settanta", _ "ottanta ", "novanta") Nums3 = Array("", "cento", "duecento", "trecento", "quattrocento", "cinquecento", "seicento", "settecento", _ " ottocento", "novecento") Nums4 = Array("", "uno", "due", "tre", "quattro", "cinque", "sei", "sette", "otto", "nove ") Nums5 = Array("dieci " , "undici", "dodici", "tredici", "quattordici", _ "quindici", "sedici", "diciassette", "diciotto", "diciannove") If n < = 0 Then SUMWRITE = "zero" Exit Function End If 'dividi il numero in cifre usando la funzione helper Class 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) 'controlla milioni Select Case decmil Case 1 mil_txt = Nums5(mil ) & "milioni " Vai a www Caso da 2 a 9 decmil_txt = Nums2(decmil) Fine Seleziona Seleziona Caso mil Caso 1 mil_txt = Nums1(mil) & "milione " Caso 2, 3, 4 mil_txt = Nums1(mil) & "milione " Caso da 5 a 20 mil_txt = Nums1(mil) & "milioni " Fine Seleziona www: sottys_txt = Nums3(sottys) ' controlla migliaia Seleziona caso dectys Caso 1 tys_txt = Nums5(tys) & "migliaia " Vai a eee Caso da 2 a 9 dectys_txt = Nums2(dectys) Fine Seleziona Seleziona Caso tys Caso 0 Se dectys > 0 Allora tys_txt = Nums4(tys) & "migliaia " Caso 1 tys_txt = Nums4(tys) & "migliaia " Caso 2, 3, 4 tys_txt = Nums4(tys) & "migliaia " Case da 5 a 9 tys_txt = Nums4(tys) & "migliaia " End Select If dectys = 0 And tys = 0 And sottys <> 0 Then sottys_txt = sottys_txt & "mille" eee: sot_txt = Nums3(sot) ' controlla decine Select Case dec Case 1 ed_txt = Nums5(ed) GoTo rrr Case 2 To 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1 (ed) rrr: 'forma la riga finale con SUM IN SPEECH = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Function ' funzione helper per estrarre dal numero di cifre Private Function Class(M, I) Class = Int(Int(M - (10^I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 1)) Fine funzione    

Salva il file (se hai Excel 2007 o 2010, allora il tipo di file deve essere abilitato alle macro, ovvero il formato xlsm!) e torna in Excel. Ora puoi inserire la funzione creata in qualsiasi cella del foglio di lavoro nel solito modo, tramite la procedura guidata della funzione (pulsante fx nella barra della formula, categoria Definito dall'utente) o semplicemente digitandolo manualmente nella cella e specificando la cella con l'importo come argomento:

Se devi aggiungere penny al testo ricevuto, puoi utilizzare una costruzione leggermente più complessa:

 u3d SOMMA SCRITTA (A3) & ” strofinare. "&TEXT((A3-INTEGER(A100))*00;"XNUMX″)&"poliziotto." 

u3d SOMMA SCRITTA (A3) & ” strofinare. "&TEXT((A3-INT(A100))*00;"XNUMX″)&"poliziotto."

Quindi, ad esempio, per il numero 35,15, il risultato della funzione sarà simile a "trentacinque rubli. 15 kop.”

 

  • Una versione più potente della funzione con rubli e centesimi in / inglese dal componente aggiuntivo PLEX
  • Cosa sono le macro, dove inserire il codice della macro, come usarle

 

Lascia un Commento