Excel Activex文本框条目的动态更新

Excel Activex文本框条目的动态更新,excel,vba,Excel,Vba,我有4个activex文本框,在其中输入值(数字)。第5个文本框是前4个文本框条目的总和。当用户更改前4个文本框值中的一个或多个值时,我希望第5个文本框动态更新。前4个框名为“TextBox1,TextBox2…”,第5个框名为TextBox5。执行此操作的代码是什么?您需要使用更改事件检测文本框何时更改,然后添加值。默认情况下,文本框具有字符串,因此您还需要将值转换为数字(整数、双精度、长型等) 您可能需要一些错误检查来避免调试错误。下面是一种检查TextBox1中是否包含数值的方法 Pri

我有4个activex文本框,在其中输入值(数字)。第5个文本框是前4个文本框条目的总和。当用户更改前4个文本框值中的一个或多个值时,我希望第5个文本框动态更新。前4个框名为“TextBox1,TextBox2…”,第5个框名为TextBox5。执行此操作的代码是什么?

您需要使用更改事件检测文本框何时更改,然后添加值。默认情况下,文本框具有字符串,因此您还需要将值转换为数字(整数、双精度、长型等)


您可能需要一些错误检查来避免调试错误。下面是一种检查
TextBox1
中是否包含数值的方法

Private Sub Sum()
    If Not IsNumeric(TextBox1) Then
        TextBox5.Value = "Error in Box 1"
        Exit Sub
    End If

    TextBox5.Value = Int(TextBox1) + Int(TextBox2.Value) + Int(TextBox3.Value) + Int(TextBox4.Value)
End Sub

完美!!这就像一个符咒一样解决了我的问题。只需再问一个问题。我没有添加值,而是将代码更改为将值相乘。TextBox5中的结果显示一个小数点右侧有几个数字字符的数字。如何将显示的乘积减少到小数点右侧的两个空格?您可以进行四舍五入下面是两个重要的数字:
TextBox1.Value=Round(TextBox1.Value,2)
先生,你是个天才。我希望你不介意我挑选你的大脑。我正在努力学习编码,我从第一步开始。谢谢你的帮助。我相信我将来还会有其他问题。
Private Sub Sum()
    If Not IsNumeric(TextBox1) Then
        TextBox5.Value = "Error in Box 1"
        Exit Sub
    End If

    TextBox5.Value = Int(TextBox1) + Int(TextBox2.Value) + Int(TextBox3.Value) + Int(TextBox4.Value)
End Sub