Funciones Round, RoundUp y RoundDown
In this Article
Función Round
La función de Round de VBA redondea los números a un número específico de dígitos.
Sintaxis de la función Round
La sintaxis de la función Round es
Round(Expresión, [Decimales]) donde:
- Expresión – El número a redondear.
- Decimales(Opcional) – Un entero que especifica el número de decimales a redondear. El valor debe ser mayor o igual a 0 (>=0). Si está en blanco, se utiliza el valor predeterminado de 0, lo que significa que la función redondea al número entero más cercano.
Entonces, veamos un ejemplo para que puedas ver cómo funciona la función Round, redondeando a 1 decimal:
Sub Round1()
Msgbox Round(7.25, 1)
End Sub
El MsgBox resultante:
Redondear una variable
En el ejemplo anterior, hemos introducido el número a redondear directamente en la función, pero normalmente se redondea una variable. El siguiente es un ejemplo que utiliza una variable en su lugar:
Nota: Utilizamos el tipo de variable Double para almacenar valores decimales.
Sub redondearUsandoVariable()
Dim unidad As Double
unidad = 7.25
MsgBox "El valor es: " & Round(unidad, 1)
End Sub
El resultado es:
Resultados del redondeo en VBA
Número real | Número de decimales | Resultado |
---|---|---|
7.25 | 0 | 7 |
7.25 | 1 | 7.2 |
7.25 | 2 | 7.25 |
-7.25 | 1 | -7.2 |
-7.25 | 2 | -7.25 |
Redondear el valor de una celda en VBA
También puede redondear el valor de una celda directamente en VBA:
Sub RedondearCelda()
Range("A1").Value = Round(Range("A1").Value, 2)
End Sub
Función RoundUp
Digamos que quiere redondear un número hacia arriba, usando VBA. No hay una función equivalente a VBA RoundUp, en su lugar lo que puede hacer es llamar a la función RoundUp de WorksheetFunction desde su código VBA:
redondeoArriba = Application.WorksheetFunction.RoundUp(unidad, 3)
Las funciones de hoja de trabajo de Excel están disponibles para su uso en VBA, mediante el uso del objetoWorksheetFunction. Las únicas funciones de hoja de trabajo que no se pueden llamar, son las que ya tienen un equivalente VBA incorporado.
Un recordatorio de la sintaxis de la función de redondeo de la hoja de trabajo de Excel:
ROUNDUP(Número, Dígitos) donde:
- Número – El número que desea redondear.
- Dígitos – El número de dígitos que desea redondear el número.
Entonces, veamos un ejemplo, para que puedas ver cómo acceder a la función RoundUp de WorksheetFunction en tu código VBA:
Sub redondeoArriba()
Dim cantidad As Double
Dim redondeoArriba As Double
cantidad = 7.075711
redondeoArriba = Application.WorksheetFunction.RoundUp(cantidad , 4)
MsgBox "El valor es " & redondeoArriba
End Sub
El resultado es:
Redondear al número entero más cercano
Puede redondear al número entero más cercano especificando 0 como número de decimales:
Sub redondearCercanoArriba()
MsgBox Application.WorksheetFunction.RoundUp(7.1, 0)
End Sub
El resultado entregado:
Resultados de la función RoundUp
Número real | Dígitos | Resultado |
---|---|---|
7.075711 | 0 | 8 |
7.075711 | 1 | 7.1 |
7.075711 | 2 | 7.08 |
7.075711 | 3 | 7.076 |
7.075711 | -1 | 10 |
7.075711 | -2 | 100 |
7.075711 | -3 | 1000 |
Función RoundDown
Digamos que usted quiere redondear un número hacia abajo, utilizando VBA. Tampoco hay una función equivalente a VBA RoundDown, en su lugar, lo que usted haría es llamar a la función RoundDown de WorksheetFunction desde su código VBA.
Un recordatorio de la sintaxis de la función RoundDown de la hoja de cálculo de Excel:
ROUNDDOWN(Número, Dígitos) donde:
– Número – El número que desea redondear hacia abajo.
– Dígitos – El número de dígitos que desea redondear el número. Así que, veamos un ejemplo, para que puedas ver cómo acceder a la función RoundDown de WorksheetFunction en tu código VBA:
Sub redondearAbajo()
Dim cantidad As Double
Dim redondearAbajo As Double
cantidad = 5.225193
redondearAbajo = Application.WorksheetFunction.RoundDown(cantidad, 4)
MsgBox "El valor es: " & redondearAbajo
End Sub
El resultado es:
Redondear al número entero más cercano hacia abajo
Puede redondear hacia abajo al número entero más cercano especificando 0 como número de decimales:
Sub redondearCercanoAbajo()
MsgBox Application.WorksheetFunction.RoundDown(7.8, 0)
End Sub
El resultado es:
Resultados de la función RoundDown
Número real | Dígitos | Resultado |
---|---|---|
5.225193 | 0 | 5 |
5.225193 | 1 | 5.2 |
5.225193 | 2 | 5.22 |
5.225193 | 3 | 5.225 |
5.225193 | -1 | 0 |
5.225193 | -2 | 0 |
5.225193 | -3 | 0 |
Otras funciones de redondeo de VBA
Función Ceiling – Redondear hacia arriba a una cifra o múltiplo especificada
VBA no tiene un equivalente a la función Ceiling.Math, por lo que si desea redondear un número al entero más cercano o al múltiplo de significación especificado más cercano, puede llamar a la función de WorksheetFunction Ceiling.Math desde su código VBA.
Un recordatorio de la sintaxis de la función Ceiling.Math de la hoja de cálculo de Excel:
CEILING.MATH(Numero, [Significado], [Modo]) donde:
- Número – El número que desea redondear.
- Significado (Opcional) – El múltiplo al que quiere que se redondee el número.
- Modo (Opcional ) – Controla si los números negativos se redondean hacia o desde el cero.
Por lo tanto, vamos a ver un ejemplo, para que pueda ver cómo acceder a la función de la hoja de trabajo Ceiling.Math en su código VBA:
Sub redondeoAritmeticoArriba()
Dim cantidad As Double
Dim redondeoAritmeticoArriba As Double
cantidad = 4.1221
redondeoAritmeticoArriba = Application.WorksheetFunction.Ceiling_Math(cantidad, 5)
MsgBox "El valor es: " & redondeoAritmeticoArriba
End Sub
El resultado es:
Resultados del redondeo de VBA a la cifra sifnificativa especificada
Número real | Cifra Significativa | Modo | Resultado |
---|---|---|---|
4.1221 | 5 | ||
4.1221 | 3 | 6 | |
4.1221 | 50 | 50 | |
-4.1221 | 3 | -3 | |
-4.1221 | 3 | -1 | -6 |
Función Floor – Redondear hacia abajo a una cifra o múltiplo especificada
VBA tampoco tiene un equivalente a la función Floor.Math. Sin embargo, una vez más, si desea redondear un número hacia abajo al número entero más cercano o al múltiplo de significación especificado más cercano, entonces puede llamar a la función de WorksheetFunction Floor.Math desde VBA.
Un recordatorio de la sintaxis de la función Floor.Math de la hoja de cálculo de Excel:
FLOOR.MATH(Número, [Significado], [Modo]) donde:
– Número – El número que desea redondear hacia abajo.
– Significado (Opcional) – El múltiplo al que quiere que se redondee el número.
– Modo (Opcional ) – Controla si los números negativos se redondean hacia o desde el cero.
Así que, veamos un ejemplo, para que pueda ver cómo acceder a la función Floor.Math Worksheet en su código VBA:
Sub redondeoAbajoSignificancia()
Dim cantidad As Double
Dim redondeoAbajoSignificancia As Double
cantidad = 4.55555559
redondeoAbajoSignificancia = Application.WorksheetFunction.Floor_Math(cantidad, 2)
MsgBox "El valor es: " & redondeoAbajoSignificancia
End Sub
El resultado es:
Resultados del redondeo hacia abajo de VBA por cifra significativa especificadas
Número real | Significado | Modo | Resultado |
---|---|---|---|
4.55555559 | 4 | ||
4.55555559 | 3 | 3 | |
4.55555559 | 50 | 0 | |
-4.55555559 | 3 | -6 | |
-4.55555559 | 3 | -1 | -3 |