老板说每个分公司都要建一个独立的花名册台账,小明花了1天时间终于搞定,如果他会VBA的话仅需要一分钟即可把这1天的工作做完,剩下的时间用来享受生活,不香吗?来,一起看看,如何通过VBA来快速完成这个任务吧。

使用VBA快速完成分公司花名册台账的建立-趣帮office教程网

以下是详细步骤,本例中的代码已经放在文章最后,需要的小伙伴可以收藏。

第一步:将分公司名称和花名册模板提前准备好。

使用VBA快速完成分公司花名册台账的建立-趣帮office教程网

第二步:鼠标右键点击工作表名称,点击查看代码。

使用VBA快速完成分公司花名册台账的建立-趣帮office教程网

第三步:在VBA代码工程中,鼠标右键点击其中一个工作表,选择创建一个模块。

使用VBA快速完成分公司花名册台账的建立-趣帮office教程网

第四步:将以下代码,粘贴到刚刚创建的模块中。

使用VBA快速完成分公司花名册台账的建立-趣帮office教程网

第五步:执行VBA代码。

使用VBA快速完成分公司花名册台账的建立-趣帮office教程网

第六步:看下效果吧。

使用VBA快速完成分公司花名册台账的建立-趣帮office教程网

以下是本案中用到的VBA代码:

Sub 批量创建分公司表格()
'实现方法
'第一步:确认需要拆分成几个工作表,根据公司进行拆分。
'第二步:每个分公司生成一个表格。
Dim i As Integer '分公司数据所在的行号
Dim 分公司名称 As String
For i = 2 To Sheets("员工花名册").Range("A65536").End(xlUp).Row
分公司名称 = Sheets("员工花名册").Range("A" & i)
创建单个分公司表格 分公司名称
Next
End Sub
Function 创建单个分公司表格(分公司名称 As String)
'实现方法
'第一步:先获取到当前工作簿中的所有工作表。
'第二步:判断工作表中有没有分公司的表格。
'第三步:如果不存在,就需要根据员工花名册模板创建一个。
'第四步:新创建表格名称等于分公司的名称。
Dim ii As Integer '用于表示当前工作簿中的第几个工作表
Dim 分公司对应的表格是否存在 As Boolean
For ii = 1 To Sheets.Count
If Sheets(ii).Name = 分公司名称 Then
分公司对应的表格是否存在 = True
End If
Next
If 分公司对应的表格是否存在 = True Then
Else
Sheets("员工花名册模板").Copy After:=Sheets(Sheets.Count)
Sheets(Sheets.Count).Name = 分公司名称
Sheets("员工花名册").Select
End If
End Function

最后,小伙伴们知道如何把本案例中的每个工作表都变成独立的Excel文件吗?