4.5.3-代码解析:L11_Fun_createPersonalFile¶
该函数实现的功能如下:
1)根据员工的姓名复制模板文件,生成个人档案文件
2)对个人档案文件更新以下五类信息,每一类更新采用一个函数或者过程实现
2.1)人员信息更新,包含籍贯、毕业院校等
2.2)考核成绩更新
2.3)证书信息更新
2.4)获奖信息
2.5)员工照片
代码如下
1 Function L11_Fun_createPersonalFile(employeeName)
2 Application.DisplayAlerts = False
3
4 currentPath = ThisWorkbook.Path
5 folderAddress = currentPath & "\" & "个人档案"
6 newFileName = employeeName & ".xlsx"
7
8 newFileAddress = folderAddress & "\" & newFileName
9 ' 检查文件是否已经存在,存在则删除
10 If Dir(newFileAddress) <> "" Then
11 Kill newFileAddress
12 End If
13
14 templateFile = "个人档案模板.xlsx"
15 templateFileAddress = currentPath & "\" & templateFile
16 FileCopy templateFileAddress, newFileAddress
17
18 Set wb = Workbooks.Open(newFileAddress)
19 Set shtOutput = wb.Worksheets(1)
20
21 ' 填入信息
22 shtOutput.Range("D2") = employeeName
23 shtOutput.Range("F1") = Now()
24
25 tips1 = L111_Fun_人员信息(shtOutput, employeeName)
26 tips2 = L112_Fun_考核成绩(shtOutput, employeeName)
27 Call L113_Sub_证书(shtOutput, employeeName)
28 Call L114_Sub_获奖(shtOutput, employeeName)
29 Call L115_Sub_员工照片(shtOutput, employeeName)
30
31 wb.Save
32 wb.Close
33
34 returnTips = tips1 & ";" & tips2
35
36 L11_Fun_createPersonalFile = returnTips
37 End Function
代码中文解析
1 Function L11_Fun_createPersonalFile(employeeName) '传入参数employeeName
2 关闭警告信息
3
4 获取当前文件所在绝对地址currentPath
5 获取当前文件夹下子文件夹"个人档案"的地址,对应变量名为folderAddress
6 设定新生成的员工个人档案文件命名为员工姓名.xlsx,对应变量名为newFileName
7
8 拟打算将新生成的个人档案文件放置于"个人档案"文件夹下,其绝对地址为newFileAddress
9 ' 注释
10 判断开始:判断员工个人档案文件是否已经存在,如果是则执行以下语句
11 删除已有员工个人档案
12 判断结束
13
14 默认文件名称为templateFile
15 默认文件地址为templateFileAddress
16 文件复制,复制模板文件到"个人档案"文件夹下,命名为newFileAddress
17
18 设置wb表示打开的新生成的员工档案Excel文件
19 获取该工作簿的第1个工作表,表示为shtOutput
20
21 ' 注释
22 在员工个人档案工作表shtOutput的"D2"单元格写入员工姓名employeeName
23 在员工个人档案工作表shtOutput的"F1"单元格写入当前时间
24
25 设置tips1为函数 L111_Fun_人员信息(shtOutput, employeeName) 的返回值
26 设置tips2为函数 L112_Fun_考核成绩(shtOutput, employeeName) 的返回值
27 调用过程 L113_Sub_证书(shtOutput, employeeName)
28 调用过程 L114_Sub_获奖(shtOutput, employeeName)
29 调用过程 L115_Sub_员工照片(shtOutput, employeeName)
30
31 保存员工个人档案工作簿wb
32 关闭员工个人档案工作簿wb
33
34 将tips1与tips2以";"连接起来,并赋值给returnTips
35
36 设置函数返回值为returnTips
37 End Function
经过以上文章的多次每行的解读,相信大家对VBA的基础使用应该有了一个初步的认识,后续的文章不再逐句进行中文的解析,只对关键语句进行中文解析
关键代码解读
1)第2行: Application.DisplayAlerts = False。关闭警告,当我们去掉该句,或者改为True。当执行到wb.Save时,会弹窗提示,如图4-16所示,需要人为关闭该弹框。这样当我们批量生成员工档案的时候就会很麻烦。
2)第31行: wb.Save。保存Excel文件,对新生成的Excel文件填写相关信息后务必保存,否则一波操作全浪费。
3)第36行: L11_Fun_createPersonalFile = returnTips。变量returnTips赋值给函数名,表示该函数的返回值为returnTips。当整个函数内部没有任何变量或者值赋值给函数名,那么这个函数不返回任何值,若设置X=函数(),在本地窗口查看X的值,为空值,类型为Empty,如图4-17所示。

