Viendo los números como palabras en excel

Si alguna vez ha necesitado para mostrar un número escrito como texto, es probable que descubrió que Excel no ofrece una función de este tipo. Cuando Excel no puede entregar, a menudo es posible corregir la deficiencia mediante el uso de VBA. He aquí una función de VBA, llamado SPELLDOLLARS, que se puede utilizar en las fórmulas de la hoja de trabajo.

ejemplos de Excel

Estos son algunos ejemplos de SPELLDOLLARS.

El código VBA

Para utilizar este código, presione Alt + F11 para activar el Editor de Visual Basic. A continuación, seleccione Insertar → Módulo para insertar un nuevo módulo de VBA. Copiar el código y pegarlo en el nuevo módulo.

SPELLDOLLARS de función (celulares) como variante` Devuelve un valor, enunciados en wordsDim dólares como secuencia, centavos Como StringDim TextLen As Long, Pos como temperatura LongDim Como StringDim iHundreds As Long, Ítenes As Long, Iones Como Seres LongDim Como variante, los adolescentes, variante, Decenas como unidades VariantDim (2 a 5) Como StringDim Bhit As Boolean, NegFlag As Boolean`¿es un no-número o celda vacía? Si No IsNumeric (celular) o célula = ‘’ ThenSPELLDOLLARS = CVErr (xlErrValue) FunctionEnd Salir Si`¿es negativo? Si celular lt; 0 = ThenNegFlag Truecell = Abs (celular) Fin IfDollars = Format (célula “### 0.00”) TextLen = Len (Dólares) - 3‘ ¿Es demasiado grande Si TextLen? gt; 15 ThenSPELLDOLLARS = CVErr (xlErrNum) Salir FunctionEnd Si ‘¿Los centavos partCents = Derecha (Dólares, 2) & “/ 100 dólares” Si celular lt; 1 ThenSPELLDOLLARS = CentsExit FunctionEnd IfDollars = Izquierda (Dólares, TextLen) Ones = Array ( ““, ‘uno’, ‘dos’, ‘tres’, ‘Cuatro’, _ ‘Cinco’, ‘Six’, ‘Seven’, “ ocho”,‘Nine’) Adolescentes = array (‘Diez’,‘Once’,‘Doce’,‘Trece’,‘Catorce’, _‘Quince’,‘dieciséis’,‘Seventeen’,‘Dieciocho’,“Diecinueve “) Decenas = array (““,‘’,‘Cuarenta Treinta Veinte’,‘’,‘’,‘Cincuenta’, _‘’,‘’,‘’,‘Unidades Sesenta Setenta Ochenta Noventa’) (2) = Unidades “mil” (3) = “millones de” Unidades (4) = “mil millones de” Unidades (5) = “billones” temp = ““Para Pos = 15 Para 3 Paso -3If TextLen gt; = Pos - 2 ThenbHit = FalseIf TextLen gt; = Pos TheniHundreds = Asc (Mid $ (dólares, TextLen - Pos + 1, 1)) - 48If iHundreds gt; 0 ThenTemp = Temperatura & ““ & Unos (iHundreds) & “Hundred” Bhit = TrueEnd IfEnd IfiTens = 0iOnes = 0 si TextLen gt; = Pos - 1 TheniTens = ASC (MID $ (dólares, TextLen - Pos + 2, 1)) - 48End IFIF TextLen gt; = Pos - 2 TheniOnes = ASC (MID $ (dólares, TextLen - Pos + 3, 1)) - 48End IFIF Ítenes = 1 ThenTemp = Temperatura & ““ & Adolescentes (Iones) Bhit = TrueElseIf Ítenes gt; = 2 ThenTemp = Temperatura & ““ & Decenas (Ítenes) Bhit = TrueEnd IFIF Iones gt; 0 ThenIf Ítenes gt; = 2 ThenTemp = Temperatura & “-” = Temperatura ElseTemp & ““End IfTemp = Temperatura & Los (Iones) Bhit = TrueEnd IfEnd IFIF Bhit Y Pos gt; 3 ThenTemp = Temperatura & ““ & Unidades (Pos 3) End IfEnd IfNext PosSPELLDOLLARS = Trim (Temp) & “Y“ & CentsIf NegFlag Entonces SPELLDOLLARS = “(” & SPELLDOLLARS & “)” End Function
Artículos Relacionados