一直以來都關注的是自己的程序,前兩天被行政部的同事調去幫忙,突然遇到很多問題(Excel,word,圖片的操作)
首先向寫程序一樣的思路,擺需求:
需求一:
一個excel的每一行都是一條記錄(例如:人員信息),有一個word文檔,裏面是表格(算是模板),現在需要將excel的每一條記錄,按照word的模板生成每一個word
解決方案:
1>傳統的手動的將excel的每一條數據填入word模板,然後另存爲一個word。循環excel的總行數次(以前行政人員是這樣做的)
這次看到excel的366條數據,仔細琢磨了一下,如果一個人,保證不出錯,始終保證不疲憊的情況,保守的算,製作一個word 1分鐘,那麼總共需要366分鐘,6個小時。龐大 的一個數量,想着這瘋了,加上我總共纔有兩個人,做到啥時候去。由於前天突然接觸到Access數據庫,突然想到將excel數據導入到access數據庫,於是下一個解決方案出現了
2>將excel數據導入Access數據庫,運用Access數據庫的導出的功能,動態的將excel的字段,綁定到word模板中。
這樣從導入excel到導出word,花了不到十分鐘的時間。
這樣每一條excel的數據就生成了我們的word的每一頁
截圖就懂:
接下來,網上搜了一下,如何將word的每一頁生成一個word,呵呵,參照他們的宏命令,成功的將word的每一頁變成 另外的word(算了一下時間,word宏命令,每半秒生成一個word,188秒,3分鐘左右的時間,就大功告成)
步驟如下:
如何把一個word多頁文檔拆分爲單頁或多頁
1、在Word裏面打開那個需要分割的文檔(假設它的文件名叫做“原始文檔.doc”);
2、鍵入ALT+F11打開VBA編輯器,選擇菜單“插入-模塊”;
3、粘貼下面的代碼:
Option Explicit
Sub SplitPagesAsDocuments()
Dim oSrcDoc As Document, oNewDoc As Document
Dim strSrcName As String, strNewName As String
Dim oRange As Range
Dim nIndex As Integer
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
Set oSrcDoc = ActiveDocument
Set oRange = oSrcDoc.Content
oRange.Collapse wdCollapseStart
oRange.Select
For nIndex = 1 ToActiveDocument.Content.Information(wdNumberOfPagesInDocument)
oSrcDoc.Bookmarks("\page").Range.Copy
oSrcDoc.Windows(1).Activate
Application.Browser.Target = wdBrowsePage
Application.Browser.Next
strSrcName = oSrcDoc.FullName
strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName), _
fso.GetBaseName(strSrcName) & "_" & nIndex &"." & fso.GetExtensionName(strSrcName))
Set oNewDoc = Documents.Add
Selection.Paste
oNewDoc.SaveAs strNewName
oNewDoc.Close False
Next
Set oNewDoc = Nothing
Set oRange = Nothing
Set oSrcDoc = Nothing
Set fso = Nothing
MsgBox "結束!"
End Sub
4、鍵入F5運行,看到“完成!”結束。