大文檔多如垃圾的Word樣式,如何清理刪除

2020-12-11 阿德O辦公圖文

Word合併文檔統一格式,你做過嗎,什麼感受?

前些天,有一位網友問我word多級列表的問題,編號不連續。打開發來的文檔一看,這不僅僅是多級列表的小問題,而是合併文檔統一格式的大問題。

原來這個文檔是各個部門發來的文檔合併而成的,A4大小,接近2000頁,樣式有3000多個,非常混亂,根本不知道哪個樣式管理哪些文本,基本就是垃圾樣式,需要清理刪除,否則可能會讓Word崩潰。如此之多的樣式,都是合併時的各個文檔帶進來的。上個圖,大家感受一下。

大文檔多如垃圾的Word樣式,如何清理刪

多級列表都是綁定到樣式的,只要整理統一了樣式,多級列表的問題,自然迎刃而解。

關於多部門製作大型文檔,當然是要事先統一模板,制定寫作規範,嚴格按照規範寫作,這樣到最後合併的時候就很簡單了。但是事已至此,也不可能返回重新排版了。

該怎麼辦?

我建議,自己新建模板,制定整理規範,對未合併之前的各個小文檔分別整理後,再合併。如果這些小文檔都找不到了,就需要從大文檔中按章節拆分成小文檔再整理。無論是原來的小文檔,還是拆分後的小文檔,仍然可能面臨垃圾樣式的困擾。

有些人建議,清除所有格式,再重新排版,但這樣工作量就增加了不少。因為原來的作者也是有一定的排版邏輯的,所以原格式是有用的,可以區分正文和標題,可以用作查找替換時的格式限定,提高整理效率。

處理垃圾樣式的VBA代碼

下面介紹一些處理垃圾樣式的VBA代碼。為防意外,使用前務必備份好文檔。

第一步 斷開樣式,保留格式

既然樣式已經混亂到無法使用,那不如斷開所有樣式與文本的連結,只保留格式。

以下代碼來自網絡(請百度「在移除 Word 文檔樣式的同時保留格式 - 少數派」),作者是PlatyHsu,我為代碼作了一些注釋。

代碼的邏輯是遍歷文檔段落,分別獲得該段落的樣式的所有字體格式和所有段落格式,然後把段落樣式設置為「正文」,最後把之前獲得的字體和段落格式再應用到該段落上。這些格式都變成了該段落的直接格式,優先級高於「正文」樣式裡的格式,這樣原段落的格式就得到了保留,同時斷開了與原樣式的連結。

「正文」樣式是word的內置樣式,是其他段落樣式的基準。無論你願不願意,每個段落都必須有一個樣式,設置為基準樣式「正文」是較好的選擇。我們平常用的清除格式按鈕,就是把格式退回「正文」樣式裡的格式。

這個代碼並不能保留所有的格式。對於一個段落,有樣式的格式和直接格式兩種格式,直接格式中的段落格式不能保留,直接格式中的字體格式不一定能保留。因為這個代碼以段落為基礎,所以它也不一定能保留字符樣式。

Sub 移除樣式並保留格式()'不能完全保留格式'對於一個由多文檔合併起來的長文檔,它的樣式多而混亂以致於無法使用,會引起word崩潰'對於這些樣式,移除(即都統一為正文樣式),並保留各種格式(變成不受樣式控制的直接格式)Dim Para As ParagraphDim Fnt As Font '代碼字體的所有格式Dim Pfmt As ParagraphFormat '代表段落的所有格式For Each Para In ActiveDocument.ParagraphsWith ParaIf .Style <> ActiveDocument.Styles("正文") Then '如果不是正文樣式,則開始處理Set Fnt = .Style.Font '獲得段落樣式的所有字體屬性,賦給fntSet Pfmt = .Style.ParagraphFormat '獲得段落樣式的所有段落屬性,賦給pfmt.Style = ActiveDocument.Styles("正文") '把它的樣式改為正文.Range.Font = Fnt '為改變樣式後的段落設置回原來的字體屬性.Range.ParagraphFormat = Pfmt '為改變樣式後的段落設置回原來的段落屬性End IfEnd WithNextEnd Sub

第二步 移除未使用樣式

以下代碼可以刪除文檔中未使用的樣式,來自網絡(使用必應查找「T001337_Removing_Unused_Styles」),作者是Ken Endacott。代碼有改動。代碼的邏輯是,遍歷所有樣式,用樣式去查找主文檔內容,找不到的對應內容是就是未使用的樣式,需要刪除。刪除的方法用Application.OrganizerDelete,不用Style. Delete,因為後者低效且容易發生錯誤。

word樣式可以分為兩種,一種是內置樣式,一種是自定義樣式,內置樣式不可刪除,自定義樣式可以刪除。

word樣式是樹狀結構,一個樣式可能是基於另一個樣式建立的,其本身也可能是其他樣式的基準。如果刪除了一個未使用的樣式,但以此樣式為基準的樣式仍然在使用,那將會使段落格式發生不可意料的改變。

有時候用戶可能為內置樣式創建了一個別名,如「標題 1(科技)」,如果只處理自定義樣式的話,這樣的樣式別名就不能被刪除。

由於經常了第一步代碼的處理,所有樣式歸為「正文」樣式,所以不考慮樣式的樹狀依賴關係。因為內置樣式不可刪除,同時為了刪除它的一些別名,所以也不事先判斷是否為內置樣式。最終代碼如下。

(在本文所說場景下,代碼的邏輯也可以是:只要樣式名稱不是「正文」就刪除,但為了廣大網友方便使用,還是保留這樣。)

這個代碼只是處理主文檔的,不處理腳註、尾注、頁眉頁腳、文本框中的內容,不考慮樣式的樹狀依賴關係。需要運行多次,直到顯示刪除的樣式數量不變為止。

Sub 刪除未使用樣式organizerdelete()On Error GoTo ErrorHandlerDim oStyle As Style, i&i = 0For Each oStyle In ActiveDocument.Styles'If oStyle.BuiltIn = False ThenWith ActiveDocument.Content.Find.ClearFormatting.MatchWildcards = False.Style = CVar(oStyle.NameLocal).Execute FindText:="", Format:=TrueIf Not .Found ThenApplication.OrganizerDelete _Source:=ActiveDocument.Path & "\" & ActiveDocument.Name, _Name:=oStyle.NameLocal, Object:=wdOrganizerObjectStylesi = i + 1End IfEnd With'End IfNext oStyleMsgBox "共刪除" & i & "未使用樣式"Exit Sub '退出過程'發生錯誤時處理ErrorHandler:i = i - 1 '發生一次錯誤則減1Resume NextEnd Sub

以上介紹的是清理垃圾樣式的方法,並不完美。這只是合併文檔統一格式的一步,後面的路仍然任重而道遠,加油吧,少年!

關於清理word未使用的樣式,你有什麼更好的方法嗎?

相關焦點

  • word如何在文檔之間複製樣式
    word如何將文檔1中的樣式導入文檔2中在瀏覽別人的文檔時,有時覺得某些樣式很優秀,想要複製到自己的文檔中,觀察格式後手動添加的方太不實際,如何快速在文檔中複製樣式呢?    解決方式:通過樣式管理。
  • word各類樣式太多,如何快速刪除不需要的?
    我們在使用word時一般都會使用一些自帶的各類樣式,但是有時候我們發現很多樣式都是我們不需要的,而且佔用非常大的顯示位置,那麼要如何刪除我們不需要的樣式呢?下面就來看看吧。一、打開word,選擇【插入】。
  • word如何刪除樣式
    文檔長時間編輯,因為某種錯誤操作,最終可能導致樣式庫內的樣式雜亂,需要刪除一些,如何有效的刪除樣式】庫中刪除第一步:單擊【開始】選項卡-【快速樣式】組-滑鼠右鍵單擊【標題1】樣式,如圖:第二步:在滑鼠右鍵【標題1】從下拉菜單中選擇【從快速樣式庫中刪除】,如圖:
  • word中怎麼修改和刪除樣式?
            在上一篇中介紹了怎麼使用和創建樣式,那如果編輯的樣式不能滿足需求或者需要改變文檔的樣式時,我們就可以修改樣式
  • 如何刪除word文檔中的空白頁
    我們通常在使用word寫文章或者論文的時候,大多數情況是需要給別人閱讀的,不管是電子版還是列印版本,如果word文檔中出現空白頁,就會很大程度上影響讀者的閱讀,那麼如何刪除word文檔中出現的空白頁呢,今天就給大家介紹一下三種不同情況出現的空白頁,應該如何刪除。
  • word文檔最後一頁怎麼刪除?word尾頁刪除方法
    在word文檔中,可能大家有遇到最後一頁無法刪除的情況,那麼大家最後都是怎樣解決這樣的情況呢?不會的小夥伴可以看看小編的操作呀!方法一:以表格結尾當我們在word中以表格結尾的話,有的時候是刪除不掉的最後一頁的。原因可能是因為表格過大,所以我們才不能刪除的。
  • 「word技巧」簡單的排版技巧—給word文檔添加各種樣式邊框線
    一直在說排版,但一篇word文檔到底怎麼排版才好看?這涉及到很多方面的技巧。不過,有時候,一個很簡單或是不起眼的小動作,有可能就會讓整個word文檔顯得高大上起來。比如說,給文檔隨意添加個邊框線,就會讓整個排版顯得更加亮眼、更加突出。所以,今天就給大家分享如何給word文檔添加各種種樣的邊框線。
  • word文檔中強大的文檔修訂功能
    對於一個word文檔,我們經常要對文檔進行修改,但是如果我們想知道我們之前到底修改了什麼,是不清楚的,在word2010之後,就有文檔的修訂功能了,該功能可以非常方便地幫助我們對文檔的校對,我們來看看怎麼做?
  • 如何在Word文檔中批量刪除順序數字
    文/黃佳英話不多說,直接進主題今天要教大家如何在word文檔中批量刪除順序數字,畢竟一個個 刪除是很費勁的!5、關閉對話框,再次查看word文檔,文本中就不包括數字了。Ctrl+Z 撤銷鍵 傳說的快捷鍵後悔藥Ctrl+Tab 可以在瀏覽器的幾個頁面之間互相切換 靈活方便Ctrl+S 保存快捷鍵Windows+L 直接鎖屏 不用擔心離開的時候資料外洩Windows+D 直接顯示桌面 要想好如何解釋為什麼對著桌面發笑喲
  • Word文檔怎麼刪除空白頁?學會了就很簡單
    相信很多人在使用Word過程中,往往也都會遇到這種情況,比如說在一個長篇文檔中,文檔最後一頁或者中間往往會存在一些空白頁,想刪除卻又刪除不了。那麼對於這種現象來說,又該如何去解決呢?下面WPSJC網就為大家介紹下,如何刪除word文檔中的空白頁?
  • word文檔如何插入目錄?
    但是很多人並不知道word文檔如何插入目錄,這裡以word 2007來舉例教大家,其他版本的軟體也一樣可以看功能來進行。打開你的文檔,這裡以百度經驗作者創作作品協議為例,是非常好的例子。看到裡面有各個標題及小標題的這種格式,很好做目錄。
  • word技巧:如何快速刪除word文檔中多餘的空行
    我在處理word文檔過程中,有的時候會出現很多多餘的空行,那麼我們該如何有效的刪除多餘的文檔中空行,下面我們就來具體操作一遍首先第一步,我們以演示文檔為例,我們將文檔人為弄出多個空行如圖所示,我們可以看到我們實力中的文檔的空行就是箭頭所指的位置那麼我們如何有效快速的把這些箭頭所指的空行都去掉呢
  • python自動化辦公:玩轉word之樣式秘笈
    上節對python如何定製word的頁眉頁腳做了詳細介紹,當然,要作出一篇精彩的word文檔,樣式公布可沒,本章繼續介紹python如何玩轉word的樣式。使用樣式python如何玩轉word的樣式此頁面使用前一頁中開發的概念而不作介紹。如果術語不熟悉,請參閱word的樣式參考。
  • 70個word文檔使用疑難(很實用)
    只要以.rtf格式另存即可問:word中圖片的分欄如何處理?答:插入——腳註和尾注問:文字雙欄,而有一張圖片特別大,想通欄顯示,應該怎麼操作?答:可以選擇的內容,按雙欄排。選擇其他內容,按單欄排。問:Word裡面如何不顯示回車換行符?
  • WORD文檔使用技巧大匯總,你想知道的都在這裡
    問:Word 中的腳註如何刪除?把正文相應的符號刪除,內容可以刪除,但最後那個格式還在,應該怎麼辦?答:步驟如下:1、切換到普通視圖,菜單中「視圖」――「腳註」,這時最下方出現了尾注的編輯欄。2、在尾注的下拉菜單中選擇「尾注分隔符」,這時那條短橫線出現了,選中它,刪除。3、再在下拉菜單中選擇「尾注延續分隔符」,這是那條長橫線出現了,選中它,刪除。4、切換回到頁面視圖。
  • win10不裝第三方清理工具,如何清理電腦垃圾
    win10不裝第三方清理工具如何清理電腦垃圾呢?隨著電腦使用久了,電腦運行變得沒那麼快,很多朋友沒有養成定期清理電腦垃圾的系統習慣,那麼如果不用第三方工具如何給電腦清理系統垃圾呢?3、然後彈出確認刪除的提示,點擊【刪除文件】,接著開始清理文件,具體清理看電腦垃圾的多少,最後清理完成提示會消失。
  • 60個word文檔使用疑難(很實用)
    常常有得單詞太長了,如果能設置一下自動斷詞就好了  答:在工具—語言—斷字—自動斷字,勾上,word還是很強大的  11.問:如何將word文檔裡的繁體字改為簡化字?  答:工具—語言—中文簡繁轉換  12.問:怎樣微調WORD表格線?
  • word長文檔排版:如何快速批量設置樣式
    今天小編將教你3個排版絕技,1分鐘快速設置好文檔格式。1、在文檔間批量複製樣式在實際工作中,同類文檔一般會使用相同格式,比如每月的工作總結、項目的分析報告、產品的營銷策劃方案、學術研究論文等等。如果之前已經設置好了一份文檔的樣式,如下圖所示的《2019年上半年經濟運行情況的分析報告》文檔。
  • 如何設置word文檔的背景顏色
    在使用word文檔進行文字或圖案編輯時,有的時候需要對文檔的背景顏色進行修改。那麼,大夥知道如何設置word文檔的背景顏色麼?不曉得的話,來看看小編給出的介紹吧。1、在電腦上打開一份空白的word文檔。
  • word教程:教大家如何查看word文檔中文本的格式差異
    大家好,很久沒有給大家分享教程了,今天為大家帶來的教程為如何查看word文檔中文本的格式差異。例如,文檔中送杜少府之任蜀州字體的格式和海內存知己,天涯若比鄰字體格式是不同的,我們如何查看這兩種字體格式的不同呢,其實word提供了一種比較兩個文本格式差異的功能。接下來我將教大家具體的步驟。1、首先,點擊開始選項卡,在樣式選項組中點擊右下角的樣式選項按鈕。之後會彈出樣式的對話框。