如何将8个文本框中的值总和为单个文本框?
我找不到办法做到这一点。 我认为这是一个非常基本的问题,但我只是与Excel VBA新,并找不到合适的公式。
最近我明白要做的总和,我必须改变每个textboxes
为整数首先,然后我可以将其添加到一个单一的textbox
,所以我将每个值转换为整数,而我总结他们一个一个文本框。
我已经试过这个代码。
Private Sub txtTotal_Change() txtTotal.Value = CInt(txtKas) + CInt(txtInvestasi) + CInt(txtDanaTerbatas) + CInt(txtBruto) + ... End Sub
我怎样才能将这个多个文本框(8个文本框)合并成一个文本框?
您需要在用户可更改的文本框上添加更改事件。
让我说下UserForm和TextBox1到TextBox3 :
TextBox3将是TextBox1和TextBox2的总和。
右键单击Project下的UserForm1 ,然后selectView Code ,然后放入TextBoxesSum Sub(我使用Doubletypes来接受小数):
Private Sub TextBoxesSum() Dim Total As Double Total = 0 If Len(TextBox1.Value) > 0 Then Total = Total + CDbl(TextBox1.Value) If Len(TextBox2.Value) > 0 Then Total = Total + CDbl(TextBox2.Value) ' Add more for the rest of your text boxes TextBox3.Value = Total End Sub
为了安全和智能,您还应该从用户input中进行重点检查。 由于文本框的数量,最好有一个函数来处理它:
Private Function NumericOnly(ByVal KeyAscii As MSForms.ReturnInteger) As MSForms.ReturnInteger Dim Key As MSForms.ReturnInteger Select Case KeyAscii Case 46, 48 To 57 ' Accept only decimal "." and numbers [0-9] Set Key = KeyAscii Case Else KeyAscii = 0 ' Minor bug earlier Set Key = KeyAscii End Select Set NumericOnly = Key End Function
现在回到UserForm1对象,右键单击TextBox1和View Code ,放入:
Private Sub TextBox1_Change() TextBoxesSum End Sub
还要检查KeyPress事件:
Private Sub TextBox1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger) KeyAscii = NumericOnly(KeyAscii) End Sub
现在复制上面2组文本框并粘贴下面,然后replace下划线之前的string以匹配文本框的名称。
示例输出:
当有人试图更改总计框中的值时,您(可能)不希望总结文本框中的值 – 当其他八个框中的值发生更改时,您希望将它们相加。
最简单的方法是创build一个简单的macros来对文本框的值进行求和,然后从用户可能改变的8的改变事件中调用该macros。
macros将文本框求和并将其放入总计框中
Private Sub sum_boxes() txtTotal = CLng(txtKas.Value) + CLng(Investasi.Value) + CLng(DanaTerbatas.Value) End Sub
什么样的变化事件会是什么样子
Private Sub txtKas_Change() Call sum_boxes End Sub
如前所述,您需要为八个盒子中的每一个进行一次更换事件。
完全不同的是,使用文本框来存储总数可能是一个坏主意,因为你不希望你的用户改变它的内容。 一个select是locking文本框,正如PatricK所build议的那样,另一个select是使用不同的对象来保存数字,例如标签,只要将其标题更改为与当前总计相似。
- 根据名称将文本框值分配给相应的单元格
- 在vba excel中的userform中dynamic读取dynamic命名的文本框的语法?
- Excel工作表上的ActiveX文本框会在丢失焦点时更改边框和字体
- 如何在expression式SSRS之前创build文本?
- 如何使用python从excel文本框中获取内容
- 将最后一列中的单元格的值链接到插入的文本框(通过vba)
- 将事件侦听器添加到Excel文本框(失去焦点)
- 在文件被“打开文件”菜单select并加载之后,如何将Excel单元格值加载到tkinter GUI中的空文本框中?
- 在Mac上使用Excel 2011中的VBA用户窗体(在Windows中编程):文本框不起作用