在用户窗体上使用IF&AND语句与checkbox

一个小背景:到目前为止,我创build了一个带有checkbox的用户窗体,每个macros都运行单独的macros,然后在未选中时运行相同的macros以返回“正常”状态。 这是通过IF,Else语句完成的。

我的问题是如何将If语句与AND语句组合在一起,所以当/如果两个框被选中,他们运行不同的代码或macros。

对于VBA和编码,我还是很新的东西,但是对于我来说IFer else语句的工作起来似乎是一个相当简单的想法。 但由于某种原因,我一直在尝试的代码没有工作,我不收到任何错误,只是当我有两个盒子检查时不做任何事情。

我一直在尝试的代码是:

Private Sub cbXray_Click() If cbXray.Value = True And cbSCH40.Value = True Then ActiveCell.FormulaR1C1 = _ "=((RC[-6]*'Sched 40 Table Data'!R[1]C[1])+(RC[-5]*'Sched 40 Table Data'!R[1]C[-10])+(RC[-4]*'Sched 40 Table Data'!R[1]C[-9])+(RC[-3]*'Sched 40 Table Data'!R[1]C[-8])+(RC[-2]*'Sched 40 Table Data'!R[1]C[-7])+(RC[-1]*'Sched 40 Table Data'!R[1]C[-6]))" Range("P7").Select Selection.AutoFill Destination:=Range("P7:P30"), Type:=xlFillDefault Range("P7:P30").Select Else Range("P7").Select ActiveCell.FormulaR1C1 = _ "=((RC[-6]*'Sched 40 Table Data'!R[1]C[-11])+(RC[-5]*'Sched 40 Table Data'!R[1]C[-10])+(RC[-4]*'Sched 40 Table Data'!R[1]C[-9])+(RC[-3]*'Sched 40 Table Data'!R[1]C[-8])+(RC[-2]*'Sched 40 Table Data'!R[1]C[-7])+(RC[-1]*'Sched 40 Table Data'!R[1]C[-6]))" Range("P7").Select Selection.AutoFill Destination:=Range("P7:P30"), Type:=xlFillDefault Range("P7:P30").Select End If End Sub 

先谢谢你!

尝试设置你的代码如下:

 Private Sub cbSCH40_Click() cbs_Check End Sub Private Sub cbXray_Click() cbs_Check End Sub Private Sub cbs_Check() With Me If .cbXray And .cbSCH40 Then 'code to run when both checkboxes are checked ElseIf .cbXray Then 'code to run when only cbXray is checked ElseIf .cbSCH40 Then 'code to run when only cbSCH40 is checked Else 'code to run when neither cbXray nor cbSCH40 is checked End If End With End Sub