I just had a closer look at your code and this part is dodgy for several reasons:
First of all, you should NEVER have an empty If block. If you do, you should invert the condition, move the code from the Else block to the If block and get rid of the Else block.
If txtInitial.Text <> "" Or txtLengthOfLoan.Text <> "" Or txtInterestRate.Text <> "" Then
MsgBox("No data entered, please enter data")
Second, you should almost always use AndAlso and OrElse in preference to And and Or.
Third, as suggested by 7777, you don't exit out when you find an invalid state, so the subsequent code will be executed no matter what.
Finally, your conditional code isn't doing what it should. It should be continuing only if all three fields are not empty, which is equivalent to not continuing if any field is empty. Your code doesn't test for either of those fields.