启用按钮 如果所有的复选框都被勾选,则启用按钮。

问题描述 投票:0回答:1

我有一个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()
excel vba button checkbox
1个回答
0
投票
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控件。

© www.soinside.com 2019 - 2024. All rights reserved.