我有一个vba代码,被分配给一个名为 "运行报告 "的按钮。有一些带有复选框的说明,我想做的是只有当所有的复选框都被勾选时才能启用按钮。我试过下面的方法,但不知为何没有用。看来是声明出了问题。我使用的是ms office 2013版本。
Sub buttonenable()
Dim B1 as Button
Dim C1 as Checkbox
Dim C2 as Checkbox
Dim C3 as Checkbox
Set B1 = Thisworkbook.Sheets("Home").Button("Run report")
Set C1 = Thisworkbook.Sheets("Home").Checkbox("Checkbox1")
Set C2 = Thisworkbook.Sheets("Home").Checkbox("Checkbox2")
Set C3 = Thisworkbook.Sheets("Home").Checkbox("Checkbox3")
IF C1 = True and C2 = True and C3 = True Then
B1.Enable = True
Else
B1.enable = False
End If
End Sub()
Sub ButtonEnable()
Dim ws As Worksheet
Set ws = Worksheets("Sheet1")
If ws.OLEObjects("chkbox1").Object.Value And _
ws.OLEObjects("chkbox2").Object.Value Then
ws.OLEObjects("CommandButton1").Object.Enabled = True
Else
ws.OLEObjects("CommandButton1").Object.Enabled = False
End If
Set ws = Nothing
End Sub
你也必须为每个复选框有一个点击事件,指向这个ButtonEnable.例如。
Private Sub chkbox1_Click()
ButtonEnable
End Sub
Private Sub chkbox2_Click()
ButtonEnable
End Sub
我假设你使用的是ActiveX控件。