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

问题描述 投票:-1回答:1

我使用带有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
excel vba
1个回答
1
投票

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

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
© www.soinside.com 2019 - 2024. All rights reserved.