Professional Documents
Culture Documents
Tal vez este malentendido se ve ayudado por el hecho de que, si tienes Excel en ingls, ambas
funciones se llamarn ROUND y podras pensar que, si tienen el mismo nombre, entonces son la
misma funcin. Pero ya que t ests en el camino para convertirte en un experto en Excel,
debers distinguir muy bien entre las funciones de Excel y las funciones VBA.
La funcin ROUND en VBA
La funcin ROUND en VBA devuelve un nmero redondeado a una cantidad especificada de
dgitos y para ello cuenta con dos argumentos:
La funcin ROUND implementa una lgica conocida como redondeo al nmero par ms cercano
es decir, si el ltimo decimal es un 5, el redondeo se har hacia el nmero par ms cercano ya sea
hacia arriba o hacia abajo. Para dejar en claro este comportamiento, en la siguiente imagen
podrs observar el resultado de la funcin al redondear este tipo de nmeros:
Todos los nmeros de la columna A terminan con el decimal 5 y todos los nmeros redondeados
de la columna B terminan con un nmero par. Observa que el nmero 2.15 es redondeado hacia
arriba, mientras que el nmero 2.25 es redondeado hacia abajo, lo cual comprueba que la funcin
ROUND utiliza la lgica de redondeo al nmero par ms cercano.
Es de vital importancia que recuerdes este comportamiento al utilizar la funcin ROUND ya que
muchos usuarios piensan que estn obteniendo resultados incorrectos aunque en realidad ese sea
el comportamiento natural de la funcin.
Application.WorksheetFunction.Round
Las funciones de Excel pueden ser accedidas desde VBA a travs del objeto WorksheetFunction
el cual contiene todas las funciones de la hoja de clculo y la nica condicin es que tendremos
que especificar su nombre en ingls. El siguiente cdigo utiliza la funcin ROUND de VBA en
la columna B y la funcin REDONDEAR (ROUND) de Excel en la columna C para redondear
los nmeros de la columna A:
Observa que los nmeros de la columna C terminan en par o impar, ya que la funcin de Excel
har el redondeo del decimal 5 siempre hacia arriba mientras que la funcin de VBA lo har
hacia el nmero par ms cercano.
Observa que estoy restando el valor 0.000001 al nmero que voy a redondear y como
consecuencia obtendr un redondeo hacia abajo. La nica condicin es que el valor a restar debe
tener muchos ms decimales que los nmeros que ests redondeando de manera que no afecte el
resultado final.