I personally don't know of one but I'm guessing your primary concern here is not having to write a lot of conditionals. One way to accomplish your task is to take an approach sort of like that used to round numbers I will describe it in pseudo code and then in real VB code. I believe it is correct but I have a few beers in me so if there is a gotchya let me know I will help you later if you need it.
Start off with the 10th place(e = 1, 10^e)
Divide the number by 10^e then subtract the floor of this number from the number.
With the remainder, you determine whether or not you need to add one to the (10^e+1)th place(next place up) by whether or not the current digit is over your rounding threshold(above .5) in VB.
Simply repeat this process for each 10th place of your number until the result is evenly divisble by 10(Number Mod 10 = 0). This way it will work with any sized number. It seems to work fine for all the numbers I tried but I could be wrong.
So 210034 will be 210030, and 210035 will be 210030(because VB rounds .5 down) and 210036 would be 210040. Hope this at least gives you a new approach if it doesn't answer your question. Good Luck.
Private Sub Command1_Click()
Dim Xin As Double, Xout As Double, e As Double, R As Double
Xin = 210034
e = 1
Do
Xout = Xin / (10 ^ e)
R = Round(Xout - Int(Xout))
Xout = (Int(Xout) * 10 ^ e) + ((10 ^ R) * R)
Loop Until Xout Mod 10 = 0
Me.Print Xout
End Sub