Iniciar sesión con Microsoft
Iniciar sesión o crear una cuenta
Hola:
Seleccione una cuenta diferente.
Tiene varias cuentas
Elija la cuenta con la que desea iniciar sesión.

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 capacidad pegando el siguiente código de función SpellNumber en un módulo de VBA (Visual Basic para Aplicaciones). Esta función le permite convertir cantidades en dólares y centavos en palabras con una fórmula, por lo que 22,50 se leería como Twenty-Two dólares y cincuenta centavos. Esto puede ser muy útil si usa Excel como plantilla para imprimir comprobaciones.

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 solo para ilustración, sin garantía expresa o implícita. Esto incluye, entre otras, las garantías implícitas de comerciabilidad o idoneidad para un propósito determinado. En este artículo se supone que está familiarizado con el lenguaje de programación de 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 determinado. Sin embargo, no modificarán estos ejemplos para proporcionar funcionalidad adicional ni construirán procedimientos para cumplir con sus requisitos específicos.

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, conocido 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 con 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 manualmente el valor como =SpellNumber(22,50).

  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 estándar de libro sin macros (.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 de Macro-Enabled de Excel (.xlsm) para mantener el archivo en su 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

Vea también

Función TEXTO

¿Necesita más ayuda?

¿Quiere más opciones?

Explore las ventajas de las suscripciones, examine los cursos de aprendizaje, aprenda a proteger su dispositivo y mucho más.

Las comunidades le ayudan a formular y responder preguntas, enviar comentarios y leer a expertos con conocimientos extensos.

¿Le ha sido útil esta información?

¿Cuál es tu grado de satisfacción con la calidad del lenguaje?
¿Qué ha afectado a su experiencia?
Si presiona Enviar, sus comentarios se usarán para mejorar los productos y servicios de Microsoft. El administrador de TI podrá recopilar estos datos. Declaración de privacidad.

¡Gracias por sus comentarios!

×