Vba 复选框以选择不同的月份
在一个userform中,我编写了一个复选框来选择多个其他复选框(月)。这是为了使用户能够选择所有12个月,而不是单击每个月。下面是我编写的代码。我现在做错了什么Vba 复选框以选择不同的月份,vba,excel,Vba,Excel,在一个userform中,我编写了一个复选框来选择多个其他复选框(月)。这是为了使用户能够选择所有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.Ca
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
有12个月。改变
For x = 0 To 12
到
这取决于您使用的名称。有12个月。改变
For x = 0 To 12
到
这取决于您使用的名称。不要检查正确或错误,请检查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
不要检查正确或错误,检查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
不要检查对错,检查vbChecked或vbUnchecked。我试过了。它给了我一个运行时错误,建议“找不到指定的对象”…不要检查True或False,检查vbChecked或vbUnchecked。我试过了。它给了我一个运行时错误,建议“找不到指定的对象”…您可以使用1个循环完成所有操作
Me.Controls(“月”&x).Value=Me.Selectbox.Value
您是正确的。我只是保留了OP的原始格式。哦,我明白了。您需要Me.Selectbox.Caption=IIf(Me.Selectbox.Value,“全部选择”,“全部取消选择”)
。我想你的方式也一样好。干杯感谢所有的评论。帮了大忙。真不敢相信这是0比1那么简单。你可以用1个循环来完成这一切Me.Controls(“月”&x).Value=Me.Selectbox.Value
您是正确的。我只是保留了OP的原始格式。哦,我明白了。您需要Me.Selectbox.Caption=IIf(Me.Selectbox.Value,“全部选择”,“全部取消选择”)
。我想你的方式也一样好。干杯感谢所有的评论。帮了大忙。真不敢相信这是0比1那么简单。