我在Staff Details工作表上有一个雇员表,其中包含以下数据:
| 员工|角色|专业|开发角色|任职起始日期|雇佣终止日期|任职情况|
| - -|- -|- -|- -|- -|- -|- -|
| 鲍勃|高级程序员|程序设计|是的|2019年1月11日||在职|
| 戴夫|中级程控仪|程序设计|是的|2019年1月11日|二〇二一年十月二十日|雇佣已终止|
| 韦斯利|中级程控仪|程序设计|是的|2019年1月12日||在职|
| 彼得|高级程序员|程序设计|是的|2019年1月12日||在职|
角色通过数据校验确定,学科通过表查找,开发角色也是通过表查找,任职情况也是通过数据校验确定。
在另一张名为员工工资的表格中,我有:
| 员工|薪资起始日期|薪资终止日期|薪资|
| - -|- -|- -|- -|
| 鲍勃|2020年1月1日||5.2万英镑|
| 戴夫|2020年1月1日||3.8万英镑|
| 韦斯利|2020年1月1日||4.5万英镑|
| 彼得|2020年1月1日||3.4万英镑|
用户当前在Staff Details上输入新员工的数据,然后在Staff Salaries工作表上输入他们的薪金详细信息。这显然容易出错,因此我希望使用数据输入表单。我有一个表单用于为Staff Details工作表输入数据,但它缺少为Role和提供数据验证下拉列表的功能雇佣状态,是否可以添加这些内容或是否有解决方法?
我还希望该表单包含一个额外的Salary条目,然后在将新雇员添加到Staff Details表时,将表单中的以下特定值注入到Staff Salaries表中,将Employee注入到Employee中,将Start Date添加到Salary Start Date列中,将薪金添加到Salary列中。如何使用表单执行此操作?是否有更好的方法?
1条答案
按热度按时间wxclj1h51#
它似乎不可能添加数据验证下拉列表使用内置的数据输入表单在excel中,所以我选择了VBA自定义表单构建选项,这也允许我发送数据到两个工作表。
为了创建vba用户表单的基础,我遵循了以下教程:VBA User Form with Dropdown lists
表单I名为NewEmployeeForm,我在Staff Details工作表上创建了一个按钮,当按下该按钮时,将触发以下宏将其打开:
表格如下:
该表单具有一个初始化功能,该功能从Role和Employment Status的命名范围填充两个组合框,设置Employment Start Date文本框的日期格式,并将光标设置到Employee Name输入字段。
单击“添加雇员”时将运行以下代码:
在向Staff Details和Staff Salaries表的底部添加新行并根据表单中输入的字段设置指定的列值之前,它首先运行一些健全性检查以确保用户输入了有效的数据。最后,清除表单,并将焦点设置为雇员姓名字段,准备进行另一项输入。
关闭按钮具有以下关闭表单的功能: