¿Cómo usar la función FormatNumber en VBA?

La función FormatNumber en VBA (Visual Basic for Applications) se utiliza para formatear números como cadenas con un número especificado de decimales, incluir o no separadores de miles, y definir si se deben mostrar los signos negativos. Aunque VBA tiene esta función incorporada, suele ser más común ver el uso de Format para tareas de formateo de números.

Aquí te comparto un ejemplo básico de cómo usar FormatNumber:

VBA

Sub EjemploFormatNumber()
    Dim numero As Double
    Dim numeroFormateado As String

    ' Asignar valor a numero
    numero = 1234567.89123
    
    ' Usar FormatNumber
    numeroFormateado = FormatNumber(numero, 2, True, vbFalse, vbFalse)
    
    ' Mostrar resultado
    MsgBox numeroFormateado
    
End Sub

En este ejemplo, el número 1234567.89123 se formatea a una cadena con las siguientes especificaciones:

  • 2 indica que queremos dos decimales.
  • True establece que queremos usar el separador de miles.
  • vbFalse (o su equivalente, -1) para UseLeadingDigit indica que sí queremos ceros a la izquierda si el número es menor que 1 y es positivo.
  • vbFalse (o su equivalente, -1) para GroupDigits indica que no queremos paréntesis alrededor de los números negativos (es decir, el signo negativo estará al frente del número).

La función FormatNumber tiene los siguientes parámetros:

  • Expression: Obligatorio. Es la expresión numérica que quieres formatear.
  • NumDigitsAfterDecimal: Opcional. Especifica el número de dígitos que se mostrarán después del punto decimal. El valor predeterminado es -1, lo cual significa que se utilizará la configuración regional del sistema.
  • IncludeLeadingDigit: Opcional. Puede ser vbTrue, vbFalse, o una de las siguientes constantes de VBA: vbUseDefault, o vbTrue. El valor predeterminado es vbUseDefault.
  • UseParensForNegativeNumbers: Opcional. Puede ser vbTrue, vbFalse, o vbUseDefault. Indica si se deben usar paréntesis para los números negativos. El valor predeterminado es vbUseDefault.
  • GroupDigits: Opcional. Puede ser vbTrue, vbFalse, o vbUseDefault. Indica si se deben agrupar los dígitos con separadores, como en 1,000 en lugar de 1000. El valor predeterminado es vbUseDefault.

Es importante tener en cuenta que FormatNumber asumirá las configuraciones regionales actuales de tu entorno para determinar el carácter del punto decimal y los separadores de miles. Si necesitas controlar estos aspectos con más precisión o si estás buscando usar un formato específico que no sea dependiente del entorno regional, podrías considerar usar Format en lugar de FormatNumber. Con Format, podrías especificar el formato de número exacto que necesitas, como en el siguiente ejemplo:

VBA

Sub EjemploFormat()
    Dim numero As Double
    Dim numeroFormateado As String

    ' Asignar valor a numero
    numero = 1234567.89123
    
    ' Usar Format
    numeroFormateado = Format(numero, "#,##0.00")
    
    ' Mostrar resultado
    MsgBox numeroFormateado
    
End Sub

En este caso, #,##0.00 es el patrón de formato que dicta cómo queremos que se muestre el número: con dos dígitos después del punto decimal y utilizando comas como separadores de miles.

Conoce nuestra tienda

Ver más productos

Mejora tu nivel y logra tus objetivo

Excel

Excel cursos

Access

cursos de Access

Power BI

cursos power BI

Ayúdanos a hacer crecer el proyecto

¡Únete a nuestro Grupo de Facebook!

Deja un comentario