Suma en cursiva

Contenido

A continuación, encontrará una función definida por el usuario lista para usar en VBA que traduce cualquier número de 0 a 9 en su representación textual, es decir, en la cantidad en palabras. Antes de usar, esta función debe agregarse a su libro. Para esto:

  1. presione el atajo de teclado ALT + F11para abrir el Editor de Visual Basic
  2. agregar nuevo módulo vacío a través del menú Insertar – Módulo
  3. copia y pega el texto de esta función allí:
Función SUMA (n como doble) como cadena Dim Nums1, Nums2, Nums3, Nums4 como variante Nums1 = Array ("", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve") Nums2 = Array(", "diez", "veinte", "treinta", "cuarenta", "cincuenta", "sesenta", "setenta", _ "ochenta ", "noventa") Nums3 = Array("", "cien", "doscientos", "trescientos", "cuatrocientos", "quinientos", "seiscientos", "setecientos", _ " ochocientos", "novecientos") Nums4 = Array("", "uno", "dos", "tres", "cuatro", "cinco", "seis", "siete", "ocho", "nueve ") Nums5 = Array("diez", "once", "doce", "trece", "catorce", _ "quince", "dieciséis", "diecisiete", "dieciocho", "diecinueve") If n < = 0 Entonces SUMWRITE = "cero" Exit Function End If 'divide el número en dígitos usando la 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 Millions Select Case decmil Case 1 mil_txt = Nums5(mil ) & "millones " GoTo www Case 2 to 9 decmil_txt = Nums2(decmil) End Select Select 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) & "millones" Finalizar Seleccionar www: sottys_txt = Nums3(sottys) ' marcar miles Seleccionar Caso dectys Caso 1 tys_txt = Nums5(tys) & "miles" Ir a eee Caso 2 a 9 dectys_txt = Nums2(dectys) Fin Seleccionar Seleccionar Caso tys Caso 0 Si dectys > 0 Entonces tys_txt = Nums4(tys) & "miles" Caso 1 tys_txt = Nums4(tys) & "mil" Caso 2, 3, 4 tys_txt = Nums4(tys) & "miles" Caso 5 a 9 tys_txt = Nums4(tys) & "miles" End Select If dectys = 0 And tys = 0 And sottys <> 0 Entonces sottys_txt = sottys_txt & "miles" eee: sot_txt = Nums3(sot) 'check tens Select Case dec Caso 1 ed_txt = Nums5(ed) GoTo rrr Caso 2 a 9 dec_txt = Nums2(dec) End Select ed_txt = Nums1 (ed) rrr: 'formar la fila final con SUMA EN VOZ = decmil_ txt & mil_txt & sottys_txt & dectys_txt & tys_txt & sot_txt & dec_txt & ed_txt End Fu nction ' Función auxiliar para extraer del número de dígitos Función privada Class(M, I) Class = Int(Int(M - (10 ^ I) * Int(M / (10 ^ I))) / 10 ^ (I - 1)) Función final    

Guarde el archivo (si tiene Excel 2007 o 2010, entonces el tipo de archivo debe estar habilitado para macros, es decir, ¡formato xlsm!) y regrese a Excel. Ahora puede insertar la función creada en cualquier celda de la hoja de trabajo de la forma habitual: a través del asistente de funciones (botón fx en la barra de fórmulas, categoría Definido por el usuario) o simplemente escribiéndolo en la celda manualmente y especificando la celda con la cantidad como argumento:

Si necesita agregar centavos al texto recibido, puede usar una construcción un poco más compleja:

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

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

Entonces, por ejemplo, para el número 35,15, el resultado de la función se verá como "treinta y cinco rublos". 15 coronas”.

 

  • Una versión más potente de la función con rublos y kopeks en inglés del complemento PLEX
  • Qué son las macros, dónde insertar código de macro, cómo usarlas

 

Deje un comentario