將一個word文檔按一頁或多頁拆分成多個文檔


工作中,有時候碰到需要將一個比較大的word按照指定的頁數分割成若干個小的word文檔,下面提供分割的方法供參考:

一、按照單頁拆分

1、在Word里面打開那個需要分割的文檔(假設它的文件名叫做“test.doc”);

2、鍵入ALT+F11打開VBA編輯器,選擇菜單“插入-模塊”,或者鍵入ALT+F8打開宏命令窗口,或者點文檔內上面的“工具”→“宏”→“宏”→找到這個宏→“運行”即可;

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 To ActiveDocument.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運行,看到“完成!”結束。

5、檢查當前文檔所在路徑下是否生成若干名為“原始文檔_n.doc”(n代表其對應原始文檔中的第幾頁)的文檔,檢查它們的內容是否就對應於原始文檔每個頁面的內容。

 

二、按指定頁動態拆分

 上述方法是按單頁拆分的,如果想按照指定頁數拆分,可使用下面的代碼,其它步驟和上述按單頁拆分方案相同。

代碼如下:

Option Explicit

Sub DynamicSplitPagesAsDocuments()

Dim oSrcDoc As Document, oNewDoc As Document
Dim strSrcName As String, strNewName As String
Dim oRange As Range
Dim nIndex As Integer, nSubIndex As Integer, nTotalPages As Integer, nBound As Integer
Dim fso As Object

Const nSteps = 3   //這里可以指定需要拆分的頁數,如這里表示按照每3頁拆分成一個小文檔

Set fso = CreateObject("Scripting.FileSystemObject")
Set oSrcDoc = ActiveDocument
Set oRange = oSrcDoc.Content

nTotalPages = ActiveDocument.Content.Information(wdNumberOfPagesInDocument)
oRange.Collapse wdCollapseStart
oRange.Select
For nIndex = 1 To nTotalPages Step nSteps
Set oNewDoc = Documents.Add
If nIndex + nSteps > nTotalPages Then
nBound = nTotalPages
Else
nBound = nIndex + nSteps - 1
End If
For nSubIndex = nIndex To nBound
oSrcDoc.Activate
oSrcDoc.Bookmarks("\page").Range.Copy
oSrcDoc.Windows(1).Activate
Application.Browser.Target = wdBrowsePage
Application.Browser.Next

oNewDoc.Activate
oNewDoc.Windows(1).Selection.Paste
Next nSubIndex
strSrcName = oSrcDoc.FullName
strNewName = fso.BuildPath(fso.GetParentFolderName(strSrcName), _
fso.GetBaseName(strSrcName) & "_" & (nIndex \ nSteps) & "." & fso.GetExtensionName(strSrcName))
oNewDoc.SaveAs strNewName
oNewDoc.Close False
Next nIndex
Set oNewDoc = Nothing
Set oRange = Nothing
Set oSrcDoc = Nothing
Set fso = Nothing
MsgBox "結束!"

End Sub

 

注意:

如文檔中有分節符分解后的文檔會出現空白頁,如要分解后不出現空白頁,需要把文檔中的分節符全部刪除。

分節符若全部替換,要注意替換后文檔可能會出現排版混亂,這則需要自己手動排版了。

分節符是指為表示節的結尾插入的標記。分節符包含節的格式設置元素,如頁邊距、頁面的方向、頁眉和頁腳,以及頁碼的順序。分節符用一條橫貫屏幕的虛雙線表示。

 

刪除分節符的方法:

試着按住shift鍵,然后點擊鼠標左鍵,然后將顯示出來的分節符刪掉即可。

 

分節符和分頁符的區別:

分頁符只是分頁,前后還是同一節;
分節符是分節,可以同一頁中不同節,也可以分節的同時下一頁。
兩者用法的最大區別在於頁眉頁腳與頁面設置,比如:
1、文檔編排中,某幾頁需要橫排,或者需要不同的紙張、頁邊距等,那么將這幾頁單獨設為一節,與前后內容不同節;
2、文檔編排中,首頁、目錄等的頁眉頁腳、頁碼與正文部分需要不同,那么將首頁、目錄等作為單獨的節;
3、如果前后內容的頁面編排方式與頁眉頁腳都一樣,只是需要新的一頁開始新的一章,那么一般用分頁符即可,當然用分節符(下一頁)也行。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM