同事急忽忽的前来求助,单位人员近三年的年度考核结果都保存在Excel表格,如图1所示,这里按照姓名、考核结果列出了所有人员的年度考核结果,她现在需要将这些考核结果导入到已形成的《干部任免考核表》的“年度考核结果”单元格,但这些任免考核表都是Word格式,由于考核人员接近千人,如果全部通过手工的方法完成导入,工作量可想而知,而且也很容易出现错误,有没有简单方便一些的方法呢?
我们可以借助VBA代码完成这一任务,打开Excel格式的年度考核表,按下“Alt+F11”组合键,打开Microsoft Visual Basic for Applications编辑器窗口,依次选择“插入→模块”,在右侧窗格插入一个空白模块,在这里手工输入或粘贴如下代码:
Sub test()
Dim Word App As New Word.
Application,My File$,arr,i%
arr=Range(“A1”).Current Region
MyPath=This Workbook.Path &“”
Application.ScreenUpdating=False
For i=2 To UBound(arr)
MyFile=Dir(MyPath &“*.doc”)
Do While MyFile <>””
If InStr(MyFile,arr(i,1)) And MyFile <>
ThisWorkbook.Name Then
d=True
With GetObject(MyPath & MyFile)
.tables(2).cell(2,2).Range.text=arr(i,2)
.Close True
End With
End If
MyFile=Dir
Loop
Next
MsgBox“批量导入完成!”
Application.ScreenUpdating=True
End Sub
上述代码的“test”可以根据喜好任意设置,导入完成之后的提示信息也可以按照需要设置,检查无误之后依次选择“文件→关闭并返回到MicrosoftExcel”命令,返回Excel主界面,按下“Alt+F8”组合键,打开“宏”对话框,选择并运行宏,此时会看到图2所示的“批量导入完成”的对话框,随后会在相应的Word表格完成年度考核结果的批量填充,效果如图3所示。如果提示“找不到工程或库”,请打开“引用-VBAProject”对话框,在可使用的引用列表下勾选“Microsoft Word 16.0 object Library”复选框,确认之后即可生效。
……
关注读览天下微信,
100万篇深度好文,
等你来看……