I was running tests on my software and found that some of the values it was producing weren't correct.

I decided to step through the code and noticed that the variables I had assigned to textbox values when hovered over said empty, even though when hovering over the textbox assigned to it, the value inputted by the user showed.

For Example,

n = BiTimeSteps_TextBox.Value
when hovered over said
n = empty
even though
BiTimeSteps_TextBox.Value = 2
when hovered over.

So say I have a formula shortly after, that says
d = n*2
n when hovered over says empty and d is made 0 when it shouldn't be.

Someone told me if I switch it around to
BiTimeSteps_TextBox.Value = n
it should be recognised but it is still not.


What could possibly be causing this?

Copy of my actual coding (I'm trying to price options using the binomial tree pricing method):

 BiCurrentStockPrice_TextBox.Value = S
    BiStrikePrice_TextBox.Value = X
    BiRisk_Free_Rate_TextBox.Value = r
    BiexpTime_TextBox.Value = T
    BiVolatility_TextBox.Value = sigma
    BiTimeSteps_TextBox.Value = n


Dim i, j, k As Integer
Dim p, V, u, d, dt As Double


dt = T / n ' This finds the value of dt
u = Exp(sigma * Sqr(dt)) 'formula for the up factor
d = 1 - u 'formula for the down factor

'V value of option

'array having the values
Dim bin() As Double 'is a binomial arrays, it stores the value of each node, there is a loop

'work out the risk free probability
p = (1 + r - d) / (u - d) 'probability of going up

ReDim bin(n + 1) As Double 'it redims the array, and n+1 is used because it starts from zero
'------------------------------------------------------------------------------------------------------------------------------
''European Call

If BiCall_CheckBox = True Then

    For i = 0 To n 'payoffs = value of option at final time
    
    bin(i + 1) = Application.WorksheetFunction.Max(0, (u ^ (n - i)) * (d ^ i) * S - X) 'It takes the max payoff or 0
    Cells(i + 20, n + 2) = bin(i + 1) 'to view payoffs on the isolated column on the right
    
    Next i


End If

'european put
If BiPut_CheckBox = True Then

For i = 0 To n 'payoffs = value of option at final time

    bin(i + 1) = Application.WorksheetFunction.Max(0, X - (S * (u * (n - i)) * (d * i))) ' European Put- It takes the max payoff or 0
    
    Cells(i + 20, n + 2) = bin(i + 1) 'to view payoffs on the isolated column on the right

Next i

End If

For k = 1 To n 'backward column loop

    For j = 1 To (n - k + 1) 'loop down the column loop

        bin(j) = (p * bin(j) + (1 - p) * bin(j + 1)) / (1 + r)
    
        Cells(j + 19, n - k + 2) = bin(j) '' print the values along the column, view of tree
    
    Next j
    
Next k

Worksheets("Binomial").Cells(17, 2) = bin(1) ' print of the value V
BiOptionPrice_TextBox = bin(1)

End Sub