Función redonda de Excel VBA

Debe haber utilizado la función Excel Round para redondear los números flotantes hasta un número específico de lugares decimales. La función VBA Round se comporta de manera totalmente diferente a la que usa en Excel. La función VBA Round utiliza la lógica "round to even". Si el número que está intentando redondear tiene el último dígito después del decimal> = 0.6, la función VBA Round lo redondea hacia arriba (Round UP).

Si el número que intenta redondear tiene el último dígito después del decimal <= 0.4, lo redondea hacia abajo (Redondear hacia abajo). Supongamos que la parte decimal es exactamente 0.5, entonces ¿qué hace? En tales casos, verifica con la parte entera del número. Si la parte entera es par, se redondea al número par de la parte decimal. Si la parte entera es impar, entonces la redondea al número par. Este método de redondeo también se denomina "redondeo bancario".

Sintaxis de la función redonda en Excel VBA

La función VBA Round tiene la siguiente sintaxis:

Dónde,

  • Expresión : el número flotante que desea redondear.
  • Decimal_places : es un argumento opcional que toma un valor entero que especifica los lugares decimales hasta los cuales se supone que el número es redondo. Siempre debe ser mayor o igual que cero. Si no se especifica, por defecto se considera cero. Lo que significa que un número se redondea a un entero.

¿Cómo utilizar la función redonda de Excel VBA?

Aprenderemos cómo usar una función VBA Round con algunos ejemplos en Excel.

Puede descargar esta plantilla de VBA Round Excel aquí - Plantilla de VBA Round Excel

Ejemplo # 1 - Función de redondeo de VBA para redondear un número

Siga los pasos a continuación para usar la función Round en Excel VBA.

Paso 1: inserte un nuevo módulo en el Editor de Visual Basic (VBE).

Paso 2: defina un nuevo subprocedimiento para almacenar una macro en VBE.

Código:

 Sub Round_Ex1 () End Sub 

Paso 3: Use la función MsgBox para poder mostrar un mensaje como este "El valor redondeado es:"

Código:

 Sub Round_Ex1 () MsgBox "El valor redondeado es:" End Sub 

Paso 4: Ahora, agregue "& Round (10.9834, 2)" delante del comando MsgBox, para que el valor redondeado se muestre en el cuadro de mensaje.

Código:

 Sub Round_Ex1 () MsgBox "El valor redondeado es:" & Round (10.9834, 2) End Sub 

Paso 5: presiona F5 o el botón Ejecutar ubicado en el panel superior para ejecutar este código. Verá una salida como se muestra a continuación.

Ejemplo # 2 - Redondear una variable usando VBA Round

Paso 1: defina un nuevo subprocedimiento en VBE para almacenar una macro.

Código:

 Sub Round_Ex2 () End Sub 

Paso 2: defina una variable llamada roundNumber como Double que pueda contener el valor del número que se redondeará.

Código:

 Sub Round_Ex2 () Dim roundNumber As Double End Sub 

Paso 3: Asigne un valor numérico que se redondeará a esta variable utilizando el operador de asignación.

Código:

 Sub Round_Ex2 () Dim roundNumber As Double roundNumber = 23.98 End Sub 

Paso 4: Use una combinación de MsgBox junto con la función Redondear para redondear este número hasta un punto decimal.

Código:

 Sub Round_Ex2 () Dim roundNumber As Double roundNumber = 23.98 MsgBox "El número redondeado es:" & Round (roundNumber, 1) End Sub 

Paso 5: presionemos F5 o el botón Ejecutar para ejecutar este código y ver el resultado.

Puede ver una salida como se muestra en la captura de pantalla anterior. Tenga en cuenta que con la lógica de "redondear a par", el último decimal se redondea a 10 y el siguiente decimal se convierte en 10, por lo que el número se redondea a la parte par más cercana del entero (es decir, 24).

Ejemplo # 3 - Redondear el valor de la celda usando VBA Round

Suponga que el valor que desea redondear se almacena en una celda de su hoja de cálculo de Excel.

Todo lo que desea es redondear este valor hasta dos decimales.

Paso 1: defina un nuevo subprocedimiento en un módulo para almacenar la macro.

Código:

 Sub Round_Ex3 () End Sub 

Paso 2: Escribir el comando como "Rango (" A2 "). Valor =". Este comando funciona como una ubicación donde se almacenará la salida.

Código:

 Sub Round_Ex3 () Rango ("A2"). Valor = End Sub 

Paso 3: Ahora, use una función de redondeo para redondear el valor presente en la celda A1 y almacene el resultado en la celda A2. Escriba el siguiente código: Redondo (Rango ("A1"). Valor, 2).

Código:

 Sub Round_Ex3 () Range ("A2"). Value = Round (Range ("A1"). Value, 2) End Sub 

Paso 4: presione F5 o el botón Ejecutar para ejecutar este código y ver el resultado en la celda A2 de su hoja de trabajo.

Ejemplo # 4 - Redondear un número usando la función de redondeo de VBA

Supongamos que desea redondear un número usando VBA. Puede hacerlo utilizando la función WorksheetFunction.RoundUp.

Paso 1: defina un nuevo subprocedimiento en el Editor de Visual Basic que pueda almacenar su macro.

Código:

 Sub Round_Ex4 () End Sub 

Paso 2: defina dos variables, una para contener el número que desea redondear. Y el otro para almacenar el resultado del resumen.

Código:

 Sub Round_Ex4 () Dim numToRound como Double Dim numRoundUp como Double End Sub 

Paso 3: Almacene un valor en la variable numToRound que desea redondear.

Código:

 Sub Round_Ex4 () Dim numToRound como Double Dim numRoundUp como Double numToRound = 12.7543712 End Sub 

Paso 4: Ahora, use RoundUp para redondear este número y almacenar el resultado en una variable numRoundUp.

Código:

 Sub Round_Ex4 () Dim numToRound As Double Dim numRoundUp As Double numToRound = 12.7543712 numRoundUp = Application.WorksheetFunction.RoundUp (numToRound, 4) End Sub 

Paso 5: Use MsgBox para mostrar el resultado debajo del cuadro de mensaje.

Código:

 Sub Round_Ex4 () Dim numToRound As Double Dim numRoundUp As Double numToRound = 12.7543712 numRoundUp = Application.WorksheetFunction.RoundUp (numToRound, 4) MsgBox "El número redondeado hacia arriba es:" & numRoundUp End Sub 

Paso 6: presione F5 o el botón Ejecutar para ejecutar este código y ver el resultado.

Ejemplo # 5 - Redondee un número usando la función VBA RoundDown

Paso 1: en un nuevo subprocedimiento, defina dos nuevas variables con el nombre numToRoundDown y roundDownNum. Uno para mantener el valor del número que se redondeará hacia abajo y otros para almacenar la salida después de que el número se redondea hacia abajo.

Código:

 Sub Round_Ex5 () Dim numToRoundDown As Double Dim roundDownNum As Double End Sub 

Paso 2: Asigne el valor que desea redondear a la variable denominada "numToRoundDown".

Código:

 Sub Round_Ex5 () Dim numToRoundDown As Double Dim roundDownNum As Double numToRoundDown = 7.075711 End Sub 

Paso 3: Ahora, use RoundDown para redondear este número y almacenar el resultado en una variable roundDownNum.

Código:

 Sub Round_Ex5 () Dim numToRoundDown As Double Dim roundDownNum As Double numToRoundDown = 7.075711 roundDownNum = Application.WorksheetFunction.RoundDown (numToRoundDown, 4) End Sub 

Paso 4: Use la función MsgBox para mostrar el valor de un número redondeado hacia abajo.

Código:

 Sub Round_Ex5 () Dim numToRoundDown As Double Dim roundDownNum As Double numToRoundDown = 7.075711 roundDownNum = Application.WorksheetFunction.RoundDown (numToRoundDown, 4) MsgBox "El número redondeado hacia abajo es:" & roundDownNum End Sub 

Paso 5: presione F5 o el botón Ejecutar para ejecutar este código y ver el resultado como un cuadro de mensaje.

Esto es en el artículo. Hemos capturado los conceptos de VBA Round, Round Up y Round Down con algunos ejemplos.

Cosas para recordar

  • Esta función utiliza el método de redondeo de un banco para redondear los números que son algo diferentes al método de redondeo real.
  • Esta función se utiliza para redondear un número con un punto flotante o un número con decimales fijos hasta un número especificado de lugares.
  • Significa que la función redondeará hacia arriba o hacia abajo el número dependiendo del número después de los puntos decimales.
  • El argumento decimal_places debe ser mayor o igual que cero.
  • Si decimal_places se deja en blanco, se considerará como cero y el número se redondeará al entero más cercano.
  • Si decimal_places se establece en menos de cero, se produce el error de tiempo de ejecución 5. "Error en tiempo de ejecución '5': llamada o argumento de procedimiento no válido".
  • No es realmente predecible a qué redondeará esta función el valor cuando el dígito después del decimal sea 5.
  • Si uno o ambos argumentos de la función Round no son numéricos, la función devolverá un error de tiempo de ejecución 13. "Error en tiempo de ejecución '13': no ​​coinciden los tipos".

Artículos recomendados

Esta ha sido una guía para la función de ronda VBA. Aquí hemos discutido cómo usar Excel VBA Round Function junto con ejemplos prácticos y una plantilla de Excel descargable. También puede consultar nuestros otros artículos sugeridos:

  1. Guía completa de VBA en caso de error
  2. ¿Cómo utilizar el formato de número VBA?
  3. Función VBAOKUP VBA con ejemplos
  4. Crear la función VBA en Excel

Categoría: