Utilizar formatos de números en Excel VBA
-
Implementar la propiedad
NumberFormat
en valores numéricos VBA -
Obtenga el tipo de
NumberFormat
utilizado por un rango de VBA
Los números vienen en diferentes formas en nuestra vida diaria. Tenemos fechas, precios, porcentajes, fracciones, decimales, etc. Todos pueden parecer diferentes, pero todos significan un valor.
Lo mismo con Excel, podemos manejar diferentes formatos de números. Podemos usar los tipos de datos Date
y Time
cuando tratamos con fechas y horas, mientras que podemos usar Percent
cuando tratamos con porcentajes.
Este artículo demostrará la propiedad NumberFormat
para ayudarnos a utilizar y manejar adecuadamente los números a lo largo de nuestra práctica de Excel VBA.
Implementar la propiedad NumberFormat
en valores numéricos VBA
Esta sección utiliza la propiedad NumberFormat
para cambiar el formato de número en una celda.
Sintaxis:
Range.NumberFormat = [FormatCodes]
Parámetros:
Range |
El rango a formatear |
[FormatCodes] |
Cadenas predeterminadas que representarán qué tipo de formato de número se utilizará. |
Matriz [códigos de formato]
:
Nombre del formato | Código de formato | Ejemplo | Descripción |
—————– | ——————————————————– | —————– | —————————————————— |
General | General |
1234567.89 |
mostrar el número sin formato específico |
Divisa | $#,##0.00 |
$1,234,567.89 |
mostrar como valores monetarios generales |
Número | 0 |
1234567.89 |
El formato mostrará el número exactamente como es. |
Científico | 0.00E+00 |
1.23E+06 |
convertir el número a formato exponencial |
Contabilidad | _($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_) |
$123.00 |
display the number used in Contabilidad |
Fecha | m/d/yy |
11/23/2021 |
mostrar los números de serie de la fecha y la hora |
Hora | [$-F400]h:mm:ss am/pm |
12:00:03 AM |
mostrar los números de serie de la fecha y la hora |
Porcentaje | 0.00% |
5.23 % |
mostrar el valor en forma de porcentaje |
Fracción | # ?/? |
1/4 |
mostrar el valor como forma fraccionaria |
Especial | ;; |
000-00-0000 |
formatos usados en valores de lista y base de datos |
La hoja de trabajo virtual Sheet1
serán los valores de referencia utilizados en todos los ejemplos a continuación para los códigos de ejemplo a continuación.
Hoja1:
| A | B | C |
1| 1234.56 | 11/23/2021 | 93249812 |
2| 5 | 0.00004 | 0.25 |
El siguiente bloque de código generará el formato General
:
Sub FormatGeneral()
Range("A1").NumberFormat = "General"
Debug.Print Range("A1").Text
End Sub
Salida FormatGeneral
:
1234.56
El siguiente bloque de código generará el formato de Moneda
:
Sub FormatCurrency()
Range("C1").NumberFormat = "$#,##0.00"
Debug.Print Range("C1").Text
End Sub
Salida General
:
$93,249,812.00
El siguiente bloque de código generará formato Científico
:
Sub FormatScientific()
Range("C1").NumberFormat = "0.00E+00"
Debug.Print Range("C1").Text
End Sub
Salida FormatScientific
:
9.32E+07
El siguiente bloque de código generará el formato Contabilidad
:
Sub FormatAccounting()
Range("A1").NumberFormat = "_($* #,##0.00_);_($* (#,##0.00);_($* ""-""??_);_(@_)"
Debug.Print Range("A1").Text
End Sub
Salida FormatAccounting
:
$ 1,234.56
El siguiente bloque de código generará el formato de Date
:
Sub FormatDate()
Range("A2").NumberFormat = "m/d/yy"
Debug.Print Range("A2").Text
End Sub
Salida FormatDate
:
1/5/00
El siguiente bloque de código generará el formato Time
:
Sub FormatTime()
Range("B2").NumberFormat = "$-F400]h:mm:ss am/pm"
Debug.Print Range("B2").Text
End Sub
Salida FormatTime
:
12:00:03 AM
El siguiente bloque de código generará el formato Porcentaje
:
Sub FormatPercentage()
Range("A1").NumberFormat = "0.00%"
Debug.Print Range("A1").Text
End Sub
Salida FormatPercentage
:
123456.00%
El siguiente bloque de código generará el formato Fracción
:
Sub FormatFraction()
Range("C2").NumberFormat = "# ?/?"
Debug.Print Range("C2").Text
End Sub
Salida FormatFraction
:
1/4
Obtenga el tipo de NumberFormat
utilizado por un rango de VBA
Devolvimos el valor formateado del rango especificado en los ejemplos anteriores. Obtendremos el tipo de formato utilizado en el rango especificado en esta sección.
Sintaxis:
Range.NumberFormat
Parámetros:
Range |
El rango de celdas para obtener el tipo de formato. |
Aún refiriéndose a Sheet1
, los bloques de código de ejemplo a continuación demostrarán la devolución del tipo de formato utilizado por el rango especificado.
Sub GetFormattingType()
Debug.Print Range("B1").NumberFormat
End Sub
Salida GetFormattingType
:
m/d/yyyy