复选框选择各个月份

时间:2017-12-07 18:00:53

标签: excel vba excel-vba

在用户表单中,我正在编码一个复选框以选择多个其他复选框(月份)。这是为了使用户能够选择所有12个月,而不是点击每个月。以下是我写的代码。我现在做错了什么?

Private Sub Selectbox_AfterUpdate()
Dim x As Integer

If Me.Selectbox.Value = True Then
For x = 0 To 12
Me.Controls("Month" & x).Value = True
Next x
Me.Selectbox.Caption = "Deselect All"

ElseIf Me.Selectbox.Value = False Then
For x = 0 To 12
Me.Controls("Month" & x).Value = False

Next x
Me.Selectbox.Caption = "Select All"

End If

End Sub

2 个答案:

答案 0 :(得分:1)

有12个月。改变

For x = 0 To 12

For x = 1 To 12

这取决于您使用的名称。

答案 1 :(得分:1)

不要检查True或False,检查vbChecked或vbUnchecked。循环中还有1次迭代次数过多。你的代码看起来像这样:

Private Sub Selectbox_AfterUpdate()
   Dim x As Integer

   If Me.Selectbox.Value = vbChecked Then
      For x = 1 To 12
         Me.Controls("Month" & x).Value = vbChecked
      Next x

      Me.Selectbox.Caption = "Deselect All"
   ElseIf Me.Selectbox.Value = vbUnchecked Then
      For x = 1 To 12
         Me.Controls("Month" & x).Value = vbUnchecked
      Next x

      Me.Selectbox.Caption = "Select All"
   End If
End Sub