如果选择了特定值,则从列表框集合添加新工作表

Adding New Worksheets from a List Box Collection if Specific Value Selected

一些背景:有 2 个工作sheet,一个有员工列表names/information,一个有送货记录(每次送货都是由另一名员工names/information完成的) =16=])

我制作了一个列表框,其中员工姓名位于第一个 sheet。根据列表框中的选择,我想为选定的员工插入一个新工作 sheet,其中列出了他们所做的所有交付(关闭交付 sheet)。列表框中还有一个 "all employees" 选项,应该为每个员工插入一个 sheet。

将您的 "All Employees" 选择作为复选框而不是列表框中的值可能会更好 -- 但这只是个人偏好。如果你决定走这条路,你可以使用 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 的名称。