如果选择了特定值,则从列表框集合添加新工作表
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
的名称。
一些背景:有 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
的名称。