Изменить код события для двух взаимосвязанных текстовых полей - PullRequest
0 голосов
/ 23 апреля 2020

Я использую пользовательскую форму с 3 текстовыми полями. TestBox1 для ввода числовых значений c (LP). TextBox2 для ввода Discount в процентах, а TextBox3 для отображения значения со скидкой. Теперь я хочу получить скидку в процентах, если пользователь помещает скидку в TextBox3. Я пытался изменить событие, но оба значения Textbox меняются.

Option Explicit

Dim Lp As Double
Dim Perc As Double

Private Sub Calculate()
Lp = CDbl(TextBox1.Value)
Perc = CDbl(TextBox2.Value)
TextBox3.Value = Lp - Lp * Perc / 100
End Sub

Private Sub TextBox2_Change()

TextBox2.Value = Lp - Lp * CDbl(TextBox1.Value) / 100
End Sub

Private Sub TextBox3_Change()
TextBox2.Value = (Lp - TextBox2.Value) * 100 / Lp
End Sub

Private Sub CommandButton1_Click()
Call Calculate
End Sub

1 Ответ

1 голос
/ 23 апреля 2020

Просто используйте процедуру для расчета и запустите ее в обоих событиях изменения ваших текстовых полей.

Option Explicit

Private Sub TextBox1_Change()
    CalculateResult
End Sub

Private Sub TextBox2_Change()
    CalculateResult
End Sub

Private Sub CalculateResult()
    If TextBox1.Value <> vbNullString And TextBox2.Value <> vbNullString Then
        Textbox3.Value = TextBox1.Value * TextBox2.Value 'adjust your calculation
    Else
        Textbox3.Value = "fill box 1 and 2 first"
    End If
End Sub
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...