Funções Round, RoundUp e RoundDown em VBA

Written by

Editorial Team

Reviewed by

Steve Rynearson

Translated by

Daniel Caramello

Last updated on May 22, 2022

Arredondamentos em VBA

A função Round do VBA arredonda números para uma quantidade específica de dígitos.

Sintaxe da Função Round do VBA

A sintaxe da função Round no VBA é:

Round(Expressão, [Casas_Decimais]) onde:

  • Expressão – O valor ou número a ser arredondado.
  • Casas_Decimais (Opcional) – Um número inteiro que especifica o número de casa decimais a serem arredondadas. O valor deve ser maior ou igual a Zero. (>= 0). Se deixado em branco, o valor padrão é utilizado, o que significa que a função arredondará para o número inteiro mais próximo.

 

Analisando o exemplo abaixo você poderá ver como a função Round do VBA funciona, arredondando para 1 (uma) casa decimal:

Sub Arredondar1()

Msgbox Round(7.25, 1)

End Sub

A MessageBox resultante é:

arredondar para 1 casa decimal

Arredondar uma Variável no VBA

No exemplo acima, nós inserimos o número a ser arredondado direto na função Round, porém, na prática, geralmente, você iria arredondar uma variável. A seguir veremos um exemplo de arredondamente usando uma variável:

Observação: Utilizamos uma variável Double para armazenar valores decimais.

Sub ArredondarUsandoVariavel()

Dim valor As Double

valor = 7.25

MsgBox "O valor é " & Round(valor, 1)

End Sub

O resultado é:

arredondamento 1 casa decimal com variável

Arredondando Resultados no VBA

Valor Original Casas Decimais 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

 

Arredondar o Valor da Célula em VBA

Você também pode arredondar o valor da célula diretamente no VBA:

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

Função RoundUp (Arredondar para Cima) em VBA

Digamos que você queira arredondar um número para cima usando o VBA, no entanto, não existe uma função interna no VBA que faça o arredondamento para cima, porém, você fazer uma chamada para a Função do Excel RoundUp a partir do seu código VBA:

valorArredCima = Application.WorksheetFunction.RoundUp(valorOriginal, 3)

Funções da Planilha Excel estão disponívels para utilizar no VBA, através do uso do objeto WorksheetFunction. As únicas função dos objeto Worksheet que você não pode chamar são aquelas que já possuem uma função equivalente interna no VBA.

Sintaxe da Função RoundUp da Planilha Excel:

ROUNDUP(Número, Casas_Decimais) onde:

  • Número – O número que você gostaria de arredondar pra cima.
  • Casas_Decimais – O número de casas decimais que você gostaria de arredondar para o número.

 

Analisando o exemplo abaixo você poderá ver como acessar a função RoundUp da Planilha Excel no seu código VBA:

Sub ArredondarParaCima()

Dim valorOriginal As Double

Dim valorArredCima As Double

valorOriginal = 7.075711

valorArredCima = Application.WorksheetFunction.RoundUp(valorOriginal , 4)

MsgBox "O valor arredondado para cima é " & valorArredCima 

End Sub

O resultado é:

vba arredondar cima até 4 casas decimais

Arredondar para Cima (RoundUp) para o Número Inteiro Mais Próximo

Você pode arredondar para cima para o número inteiro mais próximo, especificando o valor 0 (zero) no número de casas decimais:

Sub RoundUpWhole()

MsgBox Application.WorksheetFunction.RoundUp(7.1, 0)

End Sub

O resultado apresentado é:

vba arredondar cima inteiro mais próximo

Resultados da Função RoundUp

Valor Original Casas Decimais 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

Função RoundDown (Arredondar para Baixo) no VBA

Digamos que você queira arredondar um número para baixo usando o VBA, porém, também não existe uma função interna equivalente no VBA para arredondar para baixo, dessa forma, novamente, o que você pode fazer é chamar Função do Excel RoundDown a partir do seu código VBA.

Sintaxe da Função do Excel RoundDown:

ROUNDDOWN(Número, Casas_Decimais) onde:

• Número – O número que você gostaria de arredondar para baixo.
• Casas_Decimais – O número de casas decimais que você gostaria de arredondar o número.

 

Analisemos o exemplo a seguir para que você veja como acessar a Função do Excel RoundDown no seu código VBA:

Sub ArredondarParaBaixo()

Dim valorOriginal As Double

Dim valorArredBaixo As Double

valorOriginal = 5.225193

valorArredBaixo = Application.WorksheetFunction.RoundDown(valorOriginal , 4)

MsgBox "O valor arredondado para baixo é " & valorArredBaixo 

End Sub

O resultado é:

 

vba arredondar baixo até 4 casas decimais

Arredondar para Baixo (RoundDown) para o Número Inteiro Mais Próximo

Você pode arredondar para baixo para o número inteiro mais próximo ao especificar o valor 0 (zero) na quantidade de casas decimais:

Sub ArredondarParaBaixoInteiro()

MsgBox Application.WorksheetFunction.RoundDown(7.8, 0)

End Sub

O resultado é:

vba arredondar baixo inteiro mais próximo

Resultados da Função RoundDown

Valor Original Casas Decimais 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

Outras Funções de Arredondamento no VBA

Função Ceiling (Teto) – Arredondar para Cima até um Alcance Específico

O VBA não possui uma função equivalente à função Ceiling.Math, então se for necessário arredondar um número para cima até o inteiro mais próximo ou até múltiplo da importância especificada, então você pode chamar a função do Excel Ceiling.Math a partir do seu código VBA.

Sintaxe da função Ceiling.Math do Excel:

CEILING.MATH(Número, [Importância], [Modo]) onde:

  • Número – É o número que você gostaria de arredondar para cima.
  • Importância (Opcional) – O múltiplo ao qual seu número deve ser arredondado.
  • Modo (Opcional) – Controla se números negativos devem ser arredondados se aproximando ou se afastando do zero.

 

Analisando o exemplo abaixo você poderá ver como acessar a função Ceiling.Math do Excel no seu código VBA:

Sub ArredondarCimaAteImportancia()

Dim valorOriginal As Double

Dim ceilingmathValor As Double

valorOriginal = 4.1221 

ceilingmathValor = Application.WorksheetFunction.Ceiling_Math(valorOriginal, 5)

MsgBox "O valor é " & ceilingmathValor 

End Sub

O resultado é:

vba arredondar cima roundup

Resultados ao Arredondar para Cima até uma Importância Específica

Valor Original Importância Modo Resultado
4.1221 5
4.1221 3 6
4.1221 50 50
-4.1221 3 -3
-4.1221 3 -1 -6

VBA Floor – Arredondar para Baixo até um Alcance Específico

O VBA também não possui um equivalente a função Floor.Math. Entretanto, mais uma vez, se você precisa arredondar um número para baixo para o inteiro mais próximo ou para múltiplo de importância mais próximo, então você pode chamar a Função do Excel Floor.Math a partir do VBA.

Sintaxe da Função do Excel Floor.Math:

FLOOR.MATH(Número, [Importância], [Modo]) onde:
• Número O  número que você gostaria de arredondar para baixo.
• Importância (Opcional) – O múltiplo para o qual você quer que o número seja arredondado.
• Modo (Opcional) – Controla se números negativos são arredondados se aproximando ou se afastando do zero.

 

Analisemos o exemplo a seguir onde você poderá ver como acessar a Função do Excel  Floor.Math no seu código VBA:

Sub ArredondarBaixoAteImportancia()

Dim valorOriginal As Double
Dim floormathValor As Double

valorOriginal = 4.55555559
floormathValor = Application.WorksheetFunction.Floor_Math(valorOriginal, 2)

MsgBox "O valor é " & floormathValor 

End Sub

O resultado é:

vba arredondar baixo ate importância especificada

Resultados ao Arredondar para Baixo até uma Importância Específica

Valor Original Importância 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

Exemplos de Add-ins de Códigos VBA

Acesse facilmente todos os exemplos de código que se encontram em nosso site.

Simply navigate to the menu, click, and the code will be inserted directly into your module. .xlam add-in.

(Nenhuma instalação necessária!)

Baixe de Graça

Retornar aos Exemplos de Códigos VBA