dynamiccheckbox全选

我使用下面的代码创build了一个dynamiccheckbox的用户窗体。 由于列表是dynamic的,因此我正在努力弄清楚如何在底部(或任何地方)添加全选/全选全选checkbox。 任何援助将不胜感激。

Private Sub UserForm_Initialize() 'Create Checkboxes form with director names Dim lRow As Long Dim i As Long Dim chkBox As MSForms.CheckBox lRow = Cells(Rows.Count, 2).End(xlUp).Row Sheets("Directors_Database").Activate For i = 4 To lRow Set chkBox = Me.Controls.Add("Forms.CheckBox.1", "CheckBox_" & i) chkBox.Caption = Worksheets("Directors_Database").Cells(i, 2).Value chkBox.Left = 5 chkBox.Top = 5 + ((i - 2) * 20) chkBox.Width = 350 Next i Set chkBox = Nothing End Sub 

您应该在devise时创build“全选”checkbox,而不是在运行时 – 否则,分配事件例程会有点棘手(请参阅此讨论 )

你可以通过设置top属性把SelectAll-checkBox放在最下面(就像你已经做的那样)。

然后将一个Click-Event分配给该checkbox:

 Private Sub CheckBoxSelectAll_Click() Dim c As Control For Each c In Me.Controls If TypeOf c Is MSForms.CheckBox Then c.Value = CheckBoxSelectAll.Value End If Next c End Sub