Вероятно, было бы лучше, если бы в качестве флажка было выбрано «Все сотрудники», а не значение в списке, но это всего лишь личные предпочтения.Если вы решили пойти по этому пути, вы можете использовать событие CheckBox_Click
, чтобы полностью отключить ваш список, если он был отмечен.
В любом случае, к вашему актуальному вопросу.Сначала вы можете проверить значение вашего списка = All Employees
, используя следующую строку кода:
If Me.ListBox1.Value = "All Employees" Then
После того, как вы убедились, что вышеприведенное верно, тогда вы можете получить общее количество элементов вваш список с .ListCount
и цикл по каждому элементу списка:
For i = 0 To .ListCount - 1
Для каждого элемента в цикле убедитесь, что вы не добавляете лист с именем All Employees
:
If .List(i) <> "All Employees" Then
и после того, как этот последний тест пройден, создайте новый рабочий лист и присвойте ему значение в поле списка:
Private Sub CommandButton1_Click()
With Me.ListBox1
If .Value = "All Employees" Then
Dim i As Long
For i = 0 To .ListCount - 1
If .List(i) <> "All Employees" Then
ThisWorkbook.Worksheets.Add.Name = .List(i)
End If
Next
End If
End With
End Sub
Я предполагаю, что это нужно проверить, когда вы нажимаете командную кнопку - поэтому я добавилэто к этому конкретному событию.
Разные заметки
- Поскольку вы не упомянули имя вашего списка, я использовал общее имя
ListBox1
в коде.Вам придется изменить его на имя вашего фактического списка, если оно отличается. - Возможно, вам также придется обновить имя вашего
CommandButton1
в приведенном выше коде, если имя кнопки вы нажимаете, чтобы заполнить листы.отличается.