Funciones Round, RoundUp y RoundDown

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Dennis Madrid

Last updated on febrero 21, 2022

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:

 

funcion Round

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:

funcion Round usando variable

 

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:

funcion RoundUp con WorksheetFunction

 

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:

funcion RoundUp con WorksheetFunction cercano

 

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:

funcion RoundDown con WorksheetFunction

 

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:

funcion RoundDown WorksheetFunction cercano

 

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:

funcion Ceiling_Math WorksheetFunction

 

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:

funcion Floor_Math WorksheetFunction

 

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
vba-free-addin

Complemento de Ejemplos de Código de VBA

Acceda fácilmente a todos los ejemplos de código que se encuentran en nuestro sitio.

Simplemente navegue al menú, haga clic y el código se insertará directamente en su módulo. Complemento .xlam.

(¡No se requiere instalación!)

Descarga gratuita

Return to VBA Code Examples