Excel no tiene una función predeterminada que muestre números como palabras en inglés en una hoja de cálculo, pero puede Agregar esta función pegando el código de la función SpellNumber siguiente en un módulo VBA (Visual Basic para aplicaciones). Esta función le permite convertir las cantidades de dólar y céntimos en palabras con una fórmula, de modo que 22,50 se leerá como Twenty-Two dólares y 50 céntimos. Esto puede ser muy útil si está usando Excel como una plantilla para imprimir cheques.

Si desea convertir valores numéricos a formato de texto sin mostrarlos como palabras, use la función texto en su lugar.

Nota: Microsoft proporciona ejemplos de programación para la ilustración únicamente, sin ninguna garantía ya sea expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad o idoneidad para un fin determinado. En este artículo se da por supuesto que está familiarizado con el lenguaje de programación VBA y con las herramientas que se usan para crear y depurar procedimientos. Los ingenieros de soporte técnico de Microsoft pueden ayudar a explicar la funcionalidad de un procedimiento en particular. Sin embargo, no modificarán estos ejemplos para proporcionar una funcionalidad agregada ni crearán procedimientos que cumplan con sus necesidades específicas.

Crear la función SpellNumber para convertir números en palabras

  1. Use el método abreviado de teclado, Alt + F11 para abrir el editor de Visual Basic (VBE).

    Nota: También puede obtener acceso al Editor de Visual Basic si muestra la pestaña Programador en la cinta.

  2. Haga clic en la pestaña Insertar y después en Módulo.

    En el menú Insertar, haga clic en Módulo.
  3. Copie las siguientes líneas de código.

    Nota: Este código, que se conoce como función definida por el usuario (UDF), automatiza la tarea de convertir números en texto en toda la hoja de cálculo.

    Option Explicit
    
    'Main Function
    
    Function SpellNumber(ByVal MyNumber)
    
    Dim Dollars, Cents, Temp
    
    Dim DecimalPlace, Count
    
    ReDim Place(9) As String
    
    Place(2) = " Thousand "
    
    Place(3) = " Million "
    
    Place(4) = " Billion "
    
    Place(5) = " Trillion "
    
    ' String representation of amount.
    
    MyNumber = Trim(Str(MyNumber))
    
    ' Position of decimal place 0 if none.
    
    DecimalPlace = InStr(MyNumber, ".")
    
    ' Convert cents and set MyNumber to dollar amount.
    
    If DecimalPlace > 0 Then
    
    Cents = GetTens(Left(Mid(MyNumber, DecimalPlace + 1) & _ "00", 2))
    
    MyNumber = Trim(Left(MyNumber, DecimalPlace - 1))
    
    End If
    
    Count = 1
    
    Do While MyNumber <> ""
    
    Temp = GetHundreds(Right(MyNumber, 3))
    
    If Temp <> "" Then Dollars = Temp & Place(Count) & Dollars
    
    If Len(MyNumber) > 3 Then
    
    MyNumber = Left(MyNumber, Len(MyNumber) - 3)
    
    Else
    
    MyNumber = ""
    
    End If
    
    Count = Count + 1
    
    Loop
    
    Select Case Dollars
    
    Case ""
    
    Dollars = "No Dollars"
    
    Case "One"
    
    Dollars = "One Dollar"
    
    Case Else
    
    Dollars = Dollars & " Dollars"
    
    End Select
    
    Select Case Cents
    
    Case ""
    
    Cents = " and No Cents"
    
    Case "One"
    
    Cents = " and One Cent"
    
    Case Else
    
    Cents = " and " & Cents & " Cents"
    
    End Select
    
    SpellNumber = Dollars & Cents
    
    End Function
    
    
    ' Converts a number from 100-999 into text
    
    Function GetHundreds(ByVal MyNumber)
    
    Dim Result As String
    
    If Val(MyNumber) = 0 Then Exit Function
    
    MyNumber = Right("000" & MyNumber, 3)
    
    ' Convert the hundreds place.
    
    If Mid(MyNumber, 1, 1) <> "0" Then
    
    Result = GetDigit(Mid(MyNumber, 1, 1)) & " Hundred "
    
    End If
    
    ' Convert the tens and ones place.
    
    If Mid(MyNumber, 2, 1) <> "0" Then
    
    Result = Result & GetTens(Mid(MyNumber, 2))
    
    Else
    
    Result = Result & GetDigit(Mid(MyNumber, 3))
    
    End If
    
    GetHundreds = Result
    
    End Function
    
    
    ' Converts a number from 10 to 99 into text.
    
    
    Function GetTens(TensText)
    
    Dim Result As String
    
    Result = "" ' Null out the temporary function value.
    
    If Val(Left(TensText, 1)) = 1 Then ' If value between 10-19...
    
    Select Case Val(TensText)
    
    Case 10: Result = "Ten"
    
    Case 11: Result = "Eleven"
    
    Case 12: Result = "Twelve"
    
    Case 13: Result = "Thirteen"
    
    Case 14: Result = "Fourteen"
    
    Case 15: Result = "Fifteen"
    
    Case 16: Result = "Sixteen"
    
    Case 17: Result = "Seventeen"
    
    Case 18: Result = "Eighteen"
    
    Case 19: Result = "Nineteen"
    
    Case Else
    
    End Select
    
    Else ' If value between 20-99...
    
    Select Case Val(Left(TensText, 1))
    
    Case 2: Result = "Twenty "
    
    Case 3: Result = "Thirty "
    
    Case 4: Result = "Forty "
    
    Case 5: Result = "Fifty "
    
    Case 6: Result = "Sixty "
    
    Case 7: Result = "Seventy "
    
    Case 8: Result = "Eighty "
    
    Case 9: Result = "Ninety "
    
    Case Else
    
    End Select
    
    Result = Result & GetDigit _
    
    (Right(TensText, 1)) ' Retrieve ones place.
    
    End If
    
    GetTens = Result
    
    End Function
    
    
    ' Converts a number from 1 to 9 into text.
    
    Function GetDigit(Digit)
    
    Select Case Val(Digit)
    
    Case 1: GetDigit = "One"
    
    Case 2: GetDigit = "Two"
    
    Case 3: GetDigit = "Three"
    
    Case 4: GetDigit = "Four"
    
    Case 5: GetDigit = "Five"
    
    Case 6: GetDigit = "Six"
    
    Case 7: GetDigit = "Seven"
    
    Case 8: GetDigit = "Eight"
    
    Case 9: GetDigit = "Nine"
    
    Case Else: GetDigit = ""
    
    End Select
    
    End Function
  4. Pegue las líneas de código en el cuadro Módulo1 (código).

    Código pegado en el cuadro Módulo1 (código).
  5. Presione Alt + Q para volver a Excel. La función SpellNumber ya está lista para usar.

    Nota: Esta función solo funciona para el libro actual. Para usar esta función en otro libro, debe repetir los pasos para copiar y pegar el código en ese libro.

Principio de página

Usar la función SpellNumber en celdas individuales

  1. Escriba la fórmula = SpellNumber(a1) en la celda en la que desea mostrar un número escrito, donde a1 es la celda que contiene el número que desea convertir. También puede escribir el valor como = SpellNumber (22.50) de forma manual.

  2. Presione entrar para confirmar la fórmula.

Principio de página

Guardar el libro de la función SpellNumber

Excel no puede guardar un libro con funciones de macro en el formato de libro sin macros estándar (. xlsx). Si hace clic en Archivo > Guardar. Se abre el cuadro de diálogo Proyecto de VB. Haga clic en No.

En el cuadro de diálogo Proyecto de VB, haga clic en No.

Puede guardar el archivo como un libro Macro-Enabled de Excel (. xlsm) para mantener el archivo en el formato actual.

  1. Haga clic en Archivo > Guardar como.

  2. Haga clic en el menú desplegable Guardar como tipo y seleccione Excel Macro-Enabled libro.

  3. Haga clic en Guardar.

Principio de página

Función TEXTO

¿Necesita más ayuda?

Ampliar sus conocimientos
Explorar los cursos
Obtener nuevas características primero
Unirse a Microsoft Insider

¿Le ha sido útil esta información?

¿Cómo de satisfecho está con la calidad de la traducción?

¿Qué ha afectado a tu experiencia?

¿Algún comentario adicional? (Opcional)

¡Gracias por sus comentarios!

×