Hi,
I just noticed something about assigning worksheet values to vba variables.
age1 = Worksheets("Inputs").Range("Age")
is the same as
age1 = Worksheets("Inputs").Range("Age").value
I guess if the .value is missing it uses the default? Doesn't it seem better to throw an error in this...