某些背景:有2个工作表,一个工作表包含员工姓名/信息列表,一个工作表包含交货记录(每个交货是由另一名员工在另一张工作表上完成的)
我已经创建了一个列表框,其中员工姓名不在第一张纸上。根据列表框中的选择,我想为所选员工插入一个新的工作表,其中列出了他们所做的所有交付(不在交付表中)。列表框中还有一个“所有员工”选项,应为每个员工插入一张工作表。
答案 0 :(得分:0)
最好将“所有员工”选项作为复选框而不是列表框中的值-但这只是个人喜好。如果您决定采用这种方法,则可以使用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
的名称。