我有幾百個Word docx檔案,我想把它們合并成一個docx檔案。
每個檔案的標題都使用Heading1、Heading2...樣式,就樣式格式而言,所有檔案都可能是相同的。
我希望每個檔案的內容都包含在以該檔案名稱命名的Heading1標題中。檔案的標題應該在其中被降級-1,從而使檔案自己的 Heading1 變成 Heading2,等等。
這項任務非常復雜,可能不存在 GUI 解決方案(Insert|Text|Object|TextFromFile 只做簡單的合并),而且對于 VBA 來說也可能過于復雜。這也與我在網上搜索解決方案時發現的其他論壇帖子相似(但不夠相似)(示例)。
。最后,一個折中的解決方案可能是將所有這些檔案作為主檔案中的子檔案來使用(正如這里解釋的),然而我發現這很麻煩。因此,按照上述方法合并它們將是更好的選擇。
uj5u.com熱心網友回復:
我不確定你所說的標題是什么,但這段代碼將從一個檔案夾中的多個word檔案中復制所有內容,并將其粘貼到一個word檔案中。一旦所有內容都被合并到一個檔案中,你就可以對其進行任何處理,比如格式化標題。
Sub Foo()
Dim i As Long
Application.ScreenUpdating = False Long
檔案.添加
With Application.FileSearch
'Search in foldername
.LookIn = "C: est"/span>
.SearchSubFolders = False"*.doc"/span>
.執行
For i = 1 To .FoundFiles.Count
If InStr(.FoundFiles(i), "~") = 0 Then
選擇.插入檔案 FileName:=(.FoundFiles(i)), _
ConfirmConversions:=False, Link:=False, Attachment:=False.
Selection.InsertBreak型別:=wdPageBreak
End If
Next i
End With[/span
End Sub
uj5u.com熱心網友回復:
你可以使用這段代碼來 "縮小 "標題樣式
Public Sub downsizeHeadingHierarchy(doc AsWord.Document)
'重置查找物件。
With doc.Range.Find
.Text=""
.Replacement.Text=""
.Replacement.ClearFormatting
.Forward = True
.Wrap = wdFindContinue
.Format = TrueFalse[/span
.MatchWholeWord = False[/span
.MatchWildcards = False[/span]。
.MatchSoundsLike = False[/span
.MatchAllWordForms = False[/span
結束 與
Dim styleEnumFind As Long
'wdStyleHeading1 = -2, wdStyleHeading2 = -3 etc
For styleEnumFind = wdStyleHeading8 To wdStyleHeading1
With doc.Range.Find
.Style = ThisDocument.Styles(styleEnumFind)
'e.g. styleEnumFind = --> replace = -2 - 1 = -3
.Replacement.Style = ThisDocument.Styles(styleEnumFind - 1) '用下一個層次替換。
.執行替換:=wdReplaceAll
結束 與
下一步 下一步
End Sub
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/324080.html
標籤:
上一篇:用PHP在XML中進行回圈
