我使用带有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