更改两个相互关联的文本框的事件代码



我使用一个带有3个文本框的UserForm。用于输入数值(LP(的TestBox1。TextBox2用于按百分比输入折扣,TextBox3用于显示折扣值。现在,如果用户将折扣值放在TextBox3中,我想获得以百分比为单位的折扣。我尝试过Change事件,但两个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

只需使用一个过程进行计算,并在文本框的两个更改事件中运行它。

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

最新更新