Thanks guys, I'll try those, I'm really trying to avoid using a bunch of if statements though, I'm trying to keep it relatively streamlined.

Entity: On Error Resume Next just tells the computer that if it hits an error, to just skip it and keep going, it's sort of the heart of my method right now (if it worked :P), what's supposed to happen is the program tries to perform calculation a, gets an error and doesn't assign a new value to the variable, performs calculation b, doesn't get an error and assigns that value to the variable, then performs calculation c, gets an error and doesn't assign a new value to the variable. That's why I need to get an error when I divide by zero.

Seriously though guys, thanks a ton for this.

Another idea that I had was to use some sort of a "check" statement, for example, if the Do While statement could stop within itself, I'd do this:
Code:
Do While v.HasValue = false
            v = p / i
            v = System.Math.Sqrt(p * r)
            v = i * r
Loop
But the problem is that it doesn't check to see if v has value until the end of the loop, so it's essentially only performing v = i * r.