好吧,那不行……if..then..else将只按顺序计算项目,而忽略其余项目……但我怀疑你已经发现了这一点,或者你不会在这里发布……
如果你知道复选框的数量,你可以将每个复选框分为单独的if..then语句。
- If Chkbox1.Value = True Then
- 'Do Stuff
- End If
- If Chkbox2.Value = True Then
- 'Do Stuff
- End If
- If Chkbox3.Value = True Then
- 'Do Stuff
- End If
然而,更理想的方法可能是使用每个复选框的事件处理程序…
- Private Sub Chkbox1_Click ()
- If Chkbox1.Value = True Then
- 'Do Stuff
- Else
- 'Undo Stuff
- End If
- End Sub
然后,您要做的是在应用程序启动时存储每个复选框的值,如果用户取消,则重置复选框的数值,从而执行撤消操作
还有其他方法,例如循环通过控件并基于控件名执行操作
- 'Put this code in a sub that is executed at form closing time, when it wasn't cancelled
- Dim cntrl As Control
- For Each cntrl In MyForm.Controls 'Change this to your own form name
- Select Case cntrl.Name
- Case "Chkbox1"
- 'Do Stuff
- Case "Chkbox2"
- 'Do Stuff
- Case "Chkbox3"
- 'Do Stuff
- Case Else
- 'Do Stuff
- End Select
- Next cntrl
祝你好运 |