在用户表单上使用带有复选框的 IF & AND 语句

Using IF & AND statements with Checkboxes on a Userform

一点背景知识:到目前为止,我已经创建了一个带有复选框的用户窗体,每个 运行 最初将宏分开,然后在未选中时 运行 与 return 相同的宏到 "normal" 状态。这是使用 IF, Else 语句完成的。

我的问题是如何将 If 语句与 AND 语句结合起来,以便 when/if 选中两个框,它们 运行 不同的代码或宏。

我对 VBA 和编码仍然很陌生,但对我来说这似乎是一个相当简单的想法,因为我让 IF 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