Прежде всего, в качестве хорошей практики, я бы объявил переменные в начале.
так что начните с продукта DIM и т. Д.
также, что такое "Я"
Кроме того, если txtlastmonthdrawnsalary является числовым, вам не нужно добавлять «.value» в конце.
Чтобы избежать возможных ошибок, я добавил «z» в конце вашей переменной, чтобы отделить их от команд VB.
Я бы начал со следующего, если это все еще не работает, давайте посмотрим, где это сломается:
Private Sub txtLastMonthlyDrawnSalary_Change()
Dim Productz As Long, Sumz As Long, txtLastMonthlyDrawnSalary as long, txtLastAnnualDrawnSalary as long
If not txtLastMonthlyDrawnSalary = "" Then
Productz = txtLastMonthlyDrawnSalary * 12
txtLastAnnualDrawnSalary = Productz
End If
If not txtLastMonthlyDrawnSalary = "" Then
sumz = txtLastMonthlyDrawnSalary + txtAWS + txtAllowance
End If
End Sub