同事急忽忽的前來求助,單位人員近三年的年度考核結果都保存在Excel表格,如圖1所示,這里按照姓名、考核結果列出了所有人員的年度考核結果,她現在需要將這些考核結果導入到已形成的《干部任免考核表》的“年度考核結果”單元格,但這些任免考核表都是Word格式,由于考核人員接近千人,如果全部通過手工的方法完成導入,工作量可想而知,而且也很容易出現錯誤,有沒有簡單方便一些的方法呢?
我們可以借助VBA代碼完成這一任務,打開Excel格式的年度考核表,按下“Alt+F11”組合鍵,打開Microsoft Visual Basic for Applications編輯器窗口,依次選擇“插入→模塊”,在右側窗格插入一個空白模塊,在這里手工輸入或粘貼如下代碼:
Sub test()
Dim WordApp As New Word.Application, MyFile$, arr, i%
arr = Range("A1").CurrentRegion
MyPath = ThisWorkbook.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”可以根據喜好任意設置,導入完成之后的提示信息也可以按照需要設置,檢查無誤之后依次選擇“文件→關閉并返回到Microsoft Excel”命令,返回Excel主界面,按下“Alt+F8”組合鍵,打開“宏”對話框,選擇并運行宏,此時會看到圖2所示的“批量導入完成”的對話框,隨后會在相應的Word表格完成年度考核結果的批量填充,效果如圖3所示。如果提示“找不到工程或庫”,請打開“引用 - VBAProject”對 話框,在可使用的引用列表下勾選“Microsoft Word 16.0 object Library”復選框,確認之后即可生效。