excel - 如果选择了特定值,则从列表框集合添加新工作表
问题描述
一些背景:有 2 个工作表,一个包含员工姓名/信息列表,一个包含交付记录(每次交付都是由另一张表上的一名员工完成的)
我已经制作了一个列表框,其中包含第一张纸上的员工姓名。根据列表框中的选择,我想为选定的员工插入一个新工作表,其中列出了他们所做的所有交付(在交付表之外)。列表框中还有一个“所有员工”选项,应该为每个员工插入一张工作表。
解决方案
将“所有员工”选择作为复选框而不是列表框中的值可能会更好——但这只是个人喜好。如果您决定走这条路,您可以使用该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
如果您按下以填充工作表的按钮名称不同,您可能还必须更新上述代码中的名称。
推荐阅读
- angular - Angular 13 和 Bootstrap 5 | 添加路由时 UI 消失
- mysql - Nodejs mysql使用列名作为变量
- javascript - Chart.js 版本 3 编译错误:您可能需要适当的加载程序来处理此文件类型
- android - 您需要在此活动中使用 Theme.AppCompat 主题(或后代) - 找不到问题
- c++ - asio 自定义异步函数和 c++20 协程
- python - 当递归函数也是生成器时,实际上会发生什么?
- java - 为什么 JDBC 可以在我的计算机上运行,但不能在我朋友的计算机上运行?
- sql - TSQL - 查询所有循环引用
- google-api - 如何将 Google Picker 与新的 Google Identity Services JavaScript 库集成
- reactjs - 使用 Redux 从 API 检索数据