Как объявить переменные и суммировать значения переменных

Привет, я хотел бы суммировать эти 3 переменные и автоматически подставить значение суммы в другую переменную - txtTotalMonthly Salary в Excel.

  1. txtLastMonthlyDrawnSalary
  2. txtAWS
  3. txtAllowance

Может ли кто-нибудь посоветовать, пожалуйста?

Private Sub txtLastMonthlyDrawnSalary_Change()

If Me.txtLastMonthlyDrawnSalary.Value <> "" Then
    Dim Product As Long
    Product = Me.txtLastMonthlyDrawnSalary.Value * 12

    Me.txtLastAnnualDrawnSalary.Value = Product
End If

If Me.txtLastMonthlyDrawnSalary.Value <> "" Then
    Dim Sum As Long

  Me.txtLastMonthlyDrawnSalary.Value Me.txtAWS.Value + Me.txtAllowance.Value = Sum

End If

End Sub

person Rosellx    schedule 04.07.2019    source источник
comment
В чем именно заключается ваш вопрос? Вы разместили код - он не работает?   -  person SJR    schedule 04.07.2019


Ответы (1)


Прежде всего, в качестве хорошей практики я бы объявил все переменные в самом начале.

так что начните с продукта 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
person Oliviero Domenighini    schedule 04.07.2019
comment
Без проблем. Также вы можете сократить свой код, используя следующее, поскольку критерии if одинаковы: Private Sub txtLastMonthlyDrawnSalary_Change () Dim Productz As Long, Sumz As Long, txtLastMonthlyDrawnSalary as long, txtLastAnnualDrawnSalary as long, txtLastLastAnnualDrawnSalary as long Если не txtLastWwnMonthalDrawnSalary = 12, если не txtLastWwnMonthalDrawnSalary = 12 = Productz sumz = txtLastMonthlyDrawnSalary + txtAWS + txtAllowance End If End Sub - person Oliviero Domenighini; 22.07.2019