¿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`:

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:

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

Deja un comentario