Suma en coriza

Contidos

A continuación atoparás unha función definida polo usuario en VBA que traduce calquera número de 0 a 9 na súa representación textual, é dicir, na cantidade en palabras. Antes de usala, debes engadir esta función ao teu libro. Para isto:

  1. prema o atallo do teclado ALT + F11para abrir o Editor de Visual Basic
  2. engadir un novo módulo baleiro a través do menú Inserir – Módulo
  3. copie e pegue o texto desta función alí:
Función SUMA(n como dobre) como cadea Dim Núms1, Núms2, Núms3, Núms4 Como variante Núms1 = Matriz ("", "un", "dous", "tres", "catro", "cinco", "seis", "sete", "oito", "nove") Nums2 = Matriz ("", "dez", "vinte", "trinta", "corenta", "cincuenta", "sesenta", "setenta", _ "oitenta ", "noventa") Nums3 = Matriz ("", "cen", "douscentos", "trescentos", "catrocentos", "cincocentos", "seiscentos", "setecentos", _ " oitocentos", "novecentos") Nums4 = Matriz ("", "un", "dous", "tres", "catro", "cinco", "seis", "sete", "oito", "nove ") Núms5 = Matriz ("dez " , "once", "doce", "trece", "catorce", _ "quince", "dezaseis", "dezasete", "dezaoito", "dezanove") Se n < = 0 Entón SUMWRITE = "cero" Exit Function End If 'divide o número en díxitos usando a función auxiliar 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) 'check million Seleccione Case decmil Case 1 mil_txt = Nums5(mil ) & "millions " Ir a www Caso 2 ao 9 decmil_txt = Nums2(decmil) End Select Select Case mil Case 1 mil_txt = Nums1(mil) & "million " Caso 2, 3, 4 mil_txt = Nums1(mil) & "million" Case 5 to 20 mil_txt = Nums1(mil) & "millions " End Select www: sottys_txt = Nums3(sottys) ' check miles Select Case dectys Case 1 tys_txt = Nums5(tys) & "thousands " GoTo eee Case 2 to 9 dectys = Nums2(dectys) End Select Select Case tys Case 0 If dectys > 0 then tys_txt = Nums4(tys) & "thousands" Case 1 tys_txt = Nums4(tys) & "thousand" Case 2, 3, 4 tys_txt =)ms & "miles " Caso 4 a 5 tys_txt = Nums9(tys) & "miles " Finalizar Selección Se dectys = 4 E tys = 0 E sottys <> 0 Entón sottys_txt = sottys_txt & "miles" eee: sot_txtm = Num 's0() check tens Seleccionar Case dec Case 3 ed_txt = Nums1(ed) GoTo rrr Case 5 To 2 dec_txt = Nums9(dec) End Select ed_txt = Nums2 (ed) rrr: 'forma a fila final con SUM IN SPEECH = decmil_ txt & mil_txt sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt Finalizar función ' función auxiliar para extraer do número de díxitos Función privada Clase (M, I) Clase = Int(Int(M - (1 ^ I) * Int(M / ( 10 ^ I))) / 10 ^ (I - 10)) Función final    

Garda o ficheiro (se tes Excel 2007 ou 2010, entón o tipo de ficheiro debe estar habilitado para macro, é dicir, formato xlsm!) e volve a Excel. Agora pode inserir a función creada en calquera cela da folla de traballo do xeito habitual: a través do asistente de funcións (botón fx na barra de fórmulas, categoría Definido polo usuario) ou simplemente escribindoo na cela manualmente e especificando a cela coa cantidade como argumento:

Se precisas engadir céntimos ao texto recibido, podes usar unha construción un pouco máis complexa:

 u3d SUMA POR ESCRITO (A3) & ” fregar. “&TEXTO((A3-INTEGER(A100))*00;”XNUMX″)&”cop.” 

u3d SUMA POR ESCRITO (A3) & ” fregar. “&TEXT((A3-INT(A100))*00;”XNUMX″)&”cop.”

Entón, por exemplo, para o número 35,15, o resultado da función parecerá "trinta e cinco rublos. 15 cops.”

 

  • Unha versión máis potente da función con rublos e copeques en / inglés do complemento PLEX
  • Que son as macros, onde inserir o código de macros, como usalas

 

Deixe unha resposta