如何解决Excel Userform (VBA) - 如果选中复选框,如何在总计中添加值
我在用户表单 (VBA) 中有多个复选框(1 到 8),它们的值在 Ride.Caption(1 到 8)中提到。如果我选中任何复选框,那么它在 Ride 中提到的值应添加到总价值中,如果我取消选中任何复选框,则该值应从总价值中扣除
根据以下代码,我已将所有值添加到 Total 中。但是,复选框编码仍然悬而未决,我不知道如何使此代码完整。用你的专业知识帮助我。
Private Sub TotalValue_Click()
Dim X As Double
X = 0
If Len(Ride1.Caption) > 0 Then X = X + Ride1.Caption
If Len(Ride2.Caption) > 0 Then X = X + Ride2.Caption
If Len(Ride3.Caption) > 0 Then X = X + Ride3.Caption
If Len(Ride4.Caption) > 0 Then X = X + Ride4.Caption
If Len(Ride5.Caption) > 0 Then X = X + Ride5.Caption
If Len(Ride6.Caption) > 0 Then X = X + Ride6.Caption
If Len(Ride7.Caption) > 0 Then X = X + Ride7.Caption
If Len(Ride8.Caption) > 0 Then X = X + Ride8.Caption
TotalValue.Caption = X
End Sub
解决方法
我选中任何复选框,那么它在 Ride 中提到的值应添加到总价值中,如果我取消选中任何复选框,则该值应从总价值中扣除
您可以循环处理所有复选框。你也不需要扣除。只需重新计算。
这是你正在尝试的吗?
Private Sub CommandButton1_Click()
Dim TotalSum As Double
Dim i As Long
For i = 1 To 8
If Controls("Ride" & i).Value = True Then
TotalSum = TotalSum + Val(Controls("CheckBox" & i).Caption)
End If
Next i
TotalValue.Caption = TotalSum
End Sub
,
这是你要尝试的吗? 我已经在循环中完成了,因为它更干净,更容易处理。
您需要将“CheckBox”更改为您的复选框的名称。
Private Sub TotalValue_Click()
Dim X As Double,i As Integer
X = 0
For i = 1 To 8
If Me.Controls("CheckBox" & i).Value = True And Len(Me.Controls("Ride" & i).Caption) > 0 Then
X = X + Me.Controls("Ride" & i).Caption
End If
Next i
TotalValue.Caption = X
End Sub
或者,如果您希望在有人选中/取消选中复选框时更新总数,那么您可以为每个文本框添加更改事件,如下所示:
Private Sub CheckBox1_Change()
If Me.CheckBox1.Value = True Then
Me.TotalValue.Caption = Me.TotalValue.Caption + Val(Me.Ride1.Caption)
Else
Me.TotalValue.Caption = Me.TotalValue.Caption - Val(Me.Ride1.Caption)
End If
End Sub
同样,只需将“CheckBox1”更改为相关的复选框名称即可。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。